|
|
7 [4 O* v( F' t7 q/ ]$ s$ C' w. Q) s5 C$ H
[p=120, null, left]shell > [p=120, null, left]hostname mariadbServer [p=120, null, left]#临时设置主机名为[p=120, null, left]mariadbServer [p=143, null, left]mariadbServer [p=143, null, left]#修改localhost.localdomain为[p=143, null, left]mariadbServer [p=143, null, left]:wq! #保存退出[p=121, null, left]shell > [p=121, null, left]vi /etc/hostname #编辑配置文件[p=143, null, left]127.0.0.1 localhost mariadbServer [p=143, null, left]#修改localhost.localdomain为[p=143, null, left]mariadbServer [p=143, null, left]:wq! #保存退出[p=120, null, left]shell > [p=120, null, left]vi /etc/hosts #编辑配置文件[p=143, null, left]a.[p=143, null, left]若安装时没有设置主机名[p=143, null, left],[p=143, null, left]则参考以下步骤设置主机名[p=143, null, left]:[p=121, null, left]shell > [p=121, null, left]cd /etc/sysconfig/network-scripts/[p=143, null, left]HWADDR=00:0C:29:8D:24:73[p=142, null, left]TYPE=Ethernet[p=143, null, left]BOOTPROTO=static #启用静态IP地址[p=143, null, left]DEFROUTE=yes[p=142, null, left]PEERDNS=yes[p=143, null, left]PEERROUTES=yes[p=143, null, left]IPV4_FAILURE_FATAL=no[p=143, null, left]IPV6INIT=yes[p=142, null, left]IPV6_AUTOCONF=yes[p=143, null, left]IPV6_DEFROUTE=yes[p=143, null, left]IPV6_PEERDNS=yes[p=142, null, left]IPV6_PEERROUTES=yes[p=143, null, left]IPV6_FAILURE_FATAL=no[p=143, null, left]NAME=eno16777736[p=143, null, left]UUID=ae0965e7-22b9-45aa-8ec9-3f0a20a85d11[p=142, null, left]ONBOOT=yes #开启自动启用网络连接[p=143, null, left]IPADDR0=192.168.21.128 #设置IP地址[p=143, null, left]PREFIXO0=24 #设置子网掩码[p=142, null, left]GATEWAY0=192.168.21.2 [p=142, null, left] #设置网关[p=143, null, left]DNS1=8.8.8.8 #设置主DNS[p=143, null, left]DNS2=8.8.4.4 #设置备DNS[p=143, null, left]:wq! #保存退出[p=121, null, left]shell > [p=121, null, left]vi ifcfg-eno16777736[p=121, null, left]shell > [p=121, null, left]service network restart #重启网络[p=120, null, left]--[p=120, null, left]若习惯[p=120, null, left]ifconfig [p=120, null, left]可以使用[p=120, null, left]yum install net-tools[p=120, null, left]进行安装[p=121, null, left]shell > [p=121, null, left]ip addr #CentOS 7 ifconfig[p=121, null, left]命令已经过时[p=121, null, left]查看IP地址使用[p=121, null, left]ip addr [p=121, null, left]和[p=121, null, left]ip link[p=142, null, left]b.[p=142, null, left]网络配置[p=143, null, left]CentOS 7.0默认使用的是firewall作为防火墙,这里改为常用的iptables防火墙。[p=143, null, left]systemctl stop firewalld.service #停止firewall[p=143, null, left]systemctl disable firewalld.service #禁止firewall开机启动[p=142, null, left] --[p=142, null, left]关闭firewall[p=142, null, left]:[p=142, null, left]yum install iptables-[p=142, null, left]services #安装[p=143, null, left]# sample configuration for iptables service[p=142, null, left]# you can edit this manually or use system-config-firewall[p=143, null, left]# please do not ask us to add additional ports/services to this default configuration[p=143, null, left]*filter[p=143, null, left]:INPUT ACCEPT [0:0][p=142, null, left]:FORWARD ACCEPT [0:0][p=143, null, left]:OUTPUT ACCEPT [0:0][p=143, null, left]-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT[p=142, null, left]-A INPUT -p icmp -j ACCEPT[p=143, null, left]-A INPUT -i lo -j ACCEPT[p=143, null, left]-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT[p=143, null, left]-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT[p=142, null, left]-A INPUT -p tcp -m state --state NEW -m tcp --dport 12888 -j ACCEPT[p=143, null, left]-A INPUT -j REJECT --reject-with icmp-host-prohibited[p=143, null, left]-A FORWARD -j REJECT --reject-with icmp-host-prohibited[p=142, null, left]COMMIT[p=143, null, left]vi /etc/sysconfig/iptables #编辑防火墙配置文件[p=143, null, left]:wq! #保存退出[p=143, null, left] --[p=143, null, left]安装iptables防火墙[p=143, null, left]c.[p=143, null, left]防火墙设置[p=143, null, left]三; S2 Q+ L$ `% l; T+ x
k- s$ z2 d, R C) b
, _# G; Z" s: d. K
7 p v w2 O% r! Q. Y
+ f$ y. [3 N/ e7 y" l: D. C$ k9 Z) G3 q7 n$ ?% {
$ J( s4 n; V# ~3 m2 S
. y- B: o0 v+ G a
1 w+ E* v5 G) K4 Q
9 u+ t+ c- r! L f
( e, w: M5 I" J9 T2 Q/ m/ q' K
5 R" k0 t8 ?, D- f: T
( Y8 U! j) H, g; j2 k# a1 G# `9 W( H& j. |/ e t$ c4 j
systemctl restart iptables.service #最后重启防火墙使配置生效3 P) v; X" T* S+ D# _% t
systemctl enable iptables.service #设置防火墙开机启动9 T7 K* P/ v }5 S
vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加. w: ^" t# A9 S/ ^1 k
:wq! #保存退出立即启用setenforce 0! D) a- r, x+ f2 R$ C. Z
d.关闭SELINUX1 [ W, s0 v6 C
>vi /etc/ssh/sshd_config# E4 f2 i2 h0 j
--打开并修改PermitRootLogin 为noservice sshd restart$ L, U/ b+ g0 B& j K8 Y* |2 \( A: f/ q
--打开并修改port为12887
" ?0 {! J7 _/ u! X8 Me.修改ssh默认端口,并取消允许root的ssh权限,防止暴力破解
( W0 q7 K1 m4 o3 R0 P" D" y9 L8 Ya.上传安装source到目录,使用wincp或vsftpd,建议使用wincpshell> yum install -y gcc gcc-c++ * l# e- x" S! I# p) `0 \
安装依赖的package:
; l7 f5 {% u7 Q5 G shell> yum install -y cmakelibaio bison ncurses-devel
# r, ]" ~" @: \. R9 x g5 zshell> groupadd mariadb --创建mariadb组
2 K6 G X, d6 M' c" s& N6 mshell> useradd -g mariadbmariadb --创建mariadb用户
* @! v+ U" S* n( \* |& |8 Hshell>passwd mariadb --修改密码b.添加用户和组
% T$ A; D( Q6 s' p& A# o2 n* ^shell>cd /usr/local
/ Q* B5 y$ y2 _5 V. ~$ S; gshell>tar -zxvf /root/mariadb-10.0.13-linux-x86_64.tar.gz shell>ln -s /usr/local/mariadb-10.0.13-linux-x86_64mariadbc.解压缩并创建链接
% h$ I" r5 R3 g1 X- V; g( T2 Dshell> cd mariadb
3 o0 X) h! [4 Z! K5 G$ n- k$ f# V$ Dshell> chown -R mariadb .shell> chgrp -R mariadb.d.修改文件所属用户及群组5 R3 I& z6 _0 l" J8 }3 J( _1 s# D
shell> scripts/mysql_install_db --user=mariadb (root用户安装需指定用户,若使用mariadb用户安装则不需指定)e.创建数据目录并初始化权限表
7 u$ W, [" y8 {- c4 _) Tf.再次修改文件所属用户
( d5 H* L) w/ [- F7 Fshell> chown -R root .
0 d9 T* G6 @5 w$ X3 Sshell> chown -R mariadbdata 数据目录开放给mariadb用户,其他可以开放给root
4 P1 V* Q7 ]) `; R& m8 r% wg.安装完成启动mariadb! a3 y2 b n* X6 T M" R. z
shell > mkdir /var/log/mariadb) N+ |; P g- @7 s1 N: C
shell > cd /var/log | chown mariadb:mariadb mariadbshell > mkdir /var/run/mariadb' R Y2 ], @2 O
shell > cd /var/run | chown mariadb:mariadb mariadb
/ g0 B6 t2 a4 Z7 W. h --创建链接8 M0 _" |. v1 ~; l3 ` x+ G Z
shell > ln -s /usr/local/mariadb /usr/local/mysql --启动数据库5 I$ l8 J7 P6 Q& ?0 }) p* \
shell> bin/mysqld_safe --user=mariadb --创建两个日志目录并赋予相应权限& ~8 S0 T( y. V( e. C1 D( }
将/usr/local/mariadb/bin加入$PATH变量中,并设置别名alias mariadb = 'mysql'
y* K9 a0 x" G; J- a9 _* {编译环境变量source .bash_profileshell > mysql
0 r0 N5 n1 L6 y* Z5 eh.环境变量配置并尝试连接mysql6 D- Z% v6 ]# r
***************************************************************************************************** Remove any pre-installed old mysql files / libraries usually linux distros installs MySQL 5.1 **0 j0 O5 l+ Q5 G) [3 @( e: i
***************************************************************************************************rm -fR /etc/mysql9 n4 n. A2 {8 u5 y: n" D: q
rm -fR /var/lib/mysql/mysql7 a) I; E- C' ` p5 X# C
rm -fR /var/lib/mysqlfind -R / -name mysql*find / -name mysql*
`/ O6 }9 f0 i! c. a** 中途如有错误,需重新安装,重新安装前先删除对应的文件; V" ]1 G; i6 o7 k5 l: K
四.mariadb安装及配置
9 t! `- \+ D. B W
' P- t) i3 U% S Y4 ~& `: O
8 N5 U0 k2 m$ y4 ]2 [3 u( P7 f; {
F3 F) ] e2 ~
# _6 `* K/ m' Y7 C8 Z7 O/ |
" {* G q' E# x& {. U5 J1 F/ S' A( V' k& ^3 N- l! W
& ^" G0 x6 y8 h4 ~& r
, Q" q5 v( p! G0 _$ \* r! m# Z- w9 c
' z# j7 {1 l4 z2 \
rm -fR /opt/mysql* k/ z; m, P# Q( d0 l
find / -name mysql*重新解压文件.j.用户安全配置* d7 |7 }$ J/ j( ~
列举出当前不需要密码的用户:
1 ^+ w0 s! I8 H% ~. d$ A# R% L列举出不需要密码可以连接的db:
* A/ _+ b9 ?" K* _1 R, \shell > SELECT User, Host, Password FROM mysql.user;
9 L2 [6 Y9 S% w& x允许匿名用户或无权限的用户访问test或test_前缀的数据库;--清除该表内容
8 w- l' s# i2 I3 nshell> mysql -u root
2 l* Z: P9 N% N4 ~& W: rmysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')+ [; O8 x7 e4 E2 h- L
-> WHERE User = 'root';mysql> FLUSH PRIVILEGES;1).update) @9 u# j2 ^- @& [+ h. ]
shell> mysql -u root
2 Z8 ]% c' a- c3 ]mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');4 g$ l" o8 J! |+ G, ?
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');9 X% w3 k- h, ~3 b
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');2).set password
% n- A9 H/ H. f# Pshell> mysqladmin -u root password "newpwd"
5 N4 _2 r; k3 y2 S3 G' C1 bshell> mysqladmin -u root -h host_name password "newpwd"
- D. p, G1 [" ~, @; T3).mysqladmin
: M3 U' ]3 S- ^$ Mroot密码的设定可以有三种方式:0 E% f: W; M; D8 W2 q4 V
mysql>drop user ''@'localhost';mysql>drop user ''@'mariadb\_server';
# F) _0 r& Z( o删除空用户:9 s: L2 t7 s% K) f% J O4 g
shell > select user,db from mysql.db;- B: A% y7 R% ^
--测试数据库的安全保障:shell> mysql -u root -p0 I. p4 I4 l; Z
Enter password: (enter root password here)
/ q y4 [0 w% _/ dmysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';mysql> FLUSH PRIVILEGES;--彻底删除测试数据库
! E0 t* W7 `' b; r+ Z- S9 d( f0 hmysql> drop database test;
9 g' L! \1 {; C8 [3 Z重启系统后报错找不到对应的/usr/local/mysql/bin/mysqld5 I9 N! S1 _, O. n. X1 D
原因是mysqld只认mysql/bin下面的mysqld,因此需要做一个链接到正确的mariadb/bin/mysqld允许远程root用户登录/ t& k/ m( \: I" H# b# A! j
mysql> grant all privileges on *.* to 'root'@'192.168.1.111' identified by 'y}%oTiaU-3' with grant option; mysql> flush privileges; k.用户管理:! n: M+ p0 u; U
--cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mariadb #将服务文件拷贝到init.d下,并重命名为mariadb-- vi mariadb #修改mysqld_safe --datadir .. 为mysqld_safe --user=mariadb...--chkconfig --add mysql 添加服务, t: h' B6 {5 @9 d- u; e% |
--chkconfig --list 显示服务列表+ q& ? Q1 l/ k% E
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入 chkconfig --level 345 mysql on
2 h1 v7 x. G+ h--reboot重启电脑
7 j$ B" F u9 r; \--netstat -na | grep 3306,如果看到有监听说明服务启动了
% V4 q2 a9 Q0 J# a l.设置mariadb开机自启动
2 I3 A6 d- b% U" A5 [--vi /etc/my.cnf [mysqld] ...
1 r0 O C; p( E8 P( h8 R character-set-server=utf8mariadb默认的数据库字符集为latin1,如果需要修改为支持中文字符的数据库,则需要修改以下配置参数。
7 K; [6 S, J" A, k8 `& Z
# y) }; z6 v5 U/ @' G+ K |
|