|
|
# J8 H: V; \5 f3 J' D
7 Q7 |6 }6 [' E: n[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]三7 W1 q5 x. ]4 F$ T! H. e6 x
, v- D" \0 D' W( X" H1 q4 ]1 ~. ]) r+ p' f* F
; E5 Y( U0 _, x1 u# g/ j- h; i" ` H
7 _$ o. l4 E z+ T! \, D
$ b) e8 Z1 N/ h: `
4 w) d! v" Z" R+ {' Y. V0 n0 c
, k2 ^ \# L1 l7 O3 S* v$ n. m$ T* d3 I/ Z6 H9 I
+ w# J3 u, o" F H+ M) F; S, F0 N: Y
& d, i+ w7 o7 ~% c
* M& C: L) ?6 n7 N
5 j F, [! c {, `5 Z0 Lsystemctl restart iptables.service #最后重启防火墙使配置生效
- `5 Z% v' @3 bsystemctl enable iptables.service #设置防火墙开机启动$ V- E. s: D2 ], l5 {
vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加. a* D7 j0 b8 @1 d- m5 S9 P, G
:wq! #保存退出立即启用setenforce 0
4 t; E1 x& d) ^" a% D5 n8 H' \# Hd.关闭SELINUX
+ m# ?7 y3 g0 f7 T u: y. V5 w>vi /etc/ssh/sshd_config7 u% s7 f+ Z- e5 w3 q2 P
--打开并修改PermitRootLogin 为noservice sshd restart5 }: r: F5 h7 u% [2 u2 t5 Y
--打开并修改port为128872 ?7 i; h Q! P8 K& x4 j V
e.修改ssh默认端口,并取消允许root的ssh权限,防止暴力破解/ j' [1 D. q7 {! b* D) l
a.上传安装source到目录,使用wincp或vsftpd,建议使用wincpshell> yum install -y gcc gcc-c++ 4 x7 e; v j% K2 O
安装依赖的package:
' B/ P0 q' w. Q6 _" b+ r shell> yum install -y cmakelibaio bison ncurses-devel& |: A% G% j- C4 O4 i9 g
shell> groupadd mariadb --创建mariadb组) n2 o# t4 t; ~. s1 `* \; M
shell> useradd -g mariadbmariadb --创建mariadb用户
/ O$ G4 l' q2 [- h) b" Dshell>passwd mariadb --修改密码b.添加用户和组
3 z& p# w! u, b ]- ^, pshell>cd /usr/local
+ r. V! T4 D2 f7 l. y" Ashell>tar -zxvf /root/mariadb-10.0.13-linux-x86_64.tar.gz shell>ln -s /usr/local/mariadb-10.0.13-linux-x86_64mariadbc.解压缩并创建链接' @) r% o, O& W8 {
shell> cd mariadb6 l$ a6 N) W/ M; ~
shell> chown -R mariadb .shell> chgrp -R mariadb.d.修改文件所属用户及群组
% @* T! w6 P( J: H, oshell> scripts/mysql_install_db --user=mariadb (root用户安装需指定用户,若使用mariadb用户安装则不需指定)e.创建数据目录并初始化权限表
2 d0 E! S6 g: d, wf.再次修改文件所属用户 U8 H7 U1 w& Y& v) u5 N; o
shell> chown -R root .5 Z3 K7 i- V6 P/ G) b9 j, ?) J4 j- H% \
shell> chown -R mariadbdata 数据目录开放给mariadb用户,其他可以开放给root
! L" L4 Z _& Pg.安装完成启动mariadb5 T1 Q2 R* e0 ~6 U/ w, K
shell > mkdir /var/log/mariadb8 ~7 ~$ n2 r8 w, ?5 _* H
shell > cd /var/log | chown mariadb:mariadb mariadbshell > mkdir /var/run/mariadb
. K. G5 n& ~: R. B& ^3 e9 u# `shell > cd /var/run | chown mariadb:mariadb mariadb7 A( M: q8 y5 B4 y+ f( e6 b
--创建链接
% P3 E! k5 n7 s1 @: Eshell > ln -s /usr/local/mariadb /usr/local/mysql --启动数据库
" Y) `( F4 M8 U+ B _. Vshell> bin/mysqld_safe --user=mariadb --创建两个日志目录并赋予相应权限) j4 c5 Y) ^' ]* Q4 v5 E2 B( T
将/usr/local/mariadb/bin加入$PATH变量中,并设置别名alias mariadb = 'mysql'# {, m1 T* R- Y$ S5 c# X
编译环境变量source .bash_profileshell > mysql/ ?$ Q! d0 s% A5 c7 Z
h.环境变量配置并尝试连接mysql4 N# ]' C! @$ l" ]8 U
***************************************************************************************************** Remove any pre-installed old mysql files / libraries usually linux distros installs MySQL 5.1 **
, _$ T+ N' \5 I***************************************************************************************************rm -fR /etc/mysql
! J* A( g5 f# ^ Prm -fR /var/lib/mysql/mysql: k* \$ ~8 Q9 P# B8 o8 j/ {
rm -fR /var/lib/mysqlfind -R / -name mysql*find / -name mysql*
. R9 q3 n# u+ A' r& s- H** 中途如有错误,需重新安装,重新安装前先删除对应的文件# ^# P0 H) s3 B$ Y `
四.mariadb安装及配置
7 U4 w7 w0 }; v+ z( [ . d5 g/ m. ~8 V
1 ~9 p# t: F: `# n' Q
; x O( O {; E: @' q# f& q6 W0 E% `. y- l, i5 P. Q; t3 v
& X" |3 _. |) [1 d- u, m, r. b2 i* o9 \( H: N7 r$ r
* E+ K* J; F% \7 V+ ]3 _' i/ F
0 D/ }" N( U) R" V( V1 f; V) j4 P0 d- R: B" \
2 h3 F# a3 x8 y6 ?, X, ?- b4 T
$ I3 e" l: F# X. T! [3 T% x
rm -fR /opt/mysql8 Y8 k \* r1 ^6 v
find / -name mysql*重新解压文件.j.用户安全配置
$ [$ ^7 Q; j9 n列举出当前不需要密码的用户:
/ D- g% Q+ c% J3 D2 {列举出不需要密码可以连接的db:
3 C M) c# H9 a* rshell > SELECT User, Host, Password FROM mysql.user;
: |* ^( _8 i6 K3 ]# L! ~允许匿名用户或无权限的用户访问test或test_前缀的数据库;--清除该表内容
$ h% O, Q5 \2 b: y: Qshell> mysql -u root% G5 I& _; a7 Y0 q% I
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
# j4 t$ x1 }5 c% u-> WHERE User = 'root';mysql> FLUSH PRIVILEGES;1).update
( F2 g# ^$ v6 T4 a% w! Sshell> mysql -u root" `+ _4 M6 l# }3 w' ]8 n& \2 ^
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');( R4 _( t9 O# c- e" f/ T4 c- i; U
mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');
( r* n3 c0 d: N, \ Wmysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');2).set password
/ y( m( H. j) T5 \! n9 p: g1 Gshell> mysqladmin -u root password "newpwd"
( L U+ ]. U/ l$ b5 L% x# Lshell> mysqladmin -u root -h host_name password "newpwd"1 G/ P x+ v" A3 x. G+ C# k7 t" Z" r
3).mysqladmin: i0 w; ]1 h: A: h% ^# ~- M! S
root密码的设定可以有三种方式:
; b* J ]) n" s( O2 `: k/ Ymysql>drop user ''@'localhost';mysql>drop user ''@'mariadb\_server';7 Y8 h8 X' p+ S) w6 i8 h( X
删除空用户:# [4 ?% J# ^; z# I% J; }# j: H+ u
shell > select user,db from mysql.db;
# M, i) o, z5 ?# n6 k8 Y4 H4 O--测试数据库的安全保障:shell> mysql -u root -p
/ T. F7 {7 m; _& x! Q4 E9 r' KEnter password: (enter root password here)* i1 E. z& @3 M" d8 a; H* [/ b
mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';mysql> FLUSH PRIVILEGES;--彻底删除测试数据库
( m% o' ?$ y; {2 v1 P) Smysql> drop database test;5 q# O! Z- v# ~$ t& O6 z
重启系统后报错找不到对应的/usr/local/mysql/bin/mysqld
0 F6 C( o9 r1 W2 p( I& I原因是mysqld只认mysql/bin下面的mysqld,因此需要做一个链接到正确的mariadb/bin/mysqld允许远程root用户登录! i l; F8 h, ^% R% ?8 t- ^6 {
mysql> grant all privileges on *.* to 'root'@'192.168.1.111' identified by 'y}%oTiaU-3' with grant option; mysql> flush privileges; k.用户管理:8 d5 O& l# T) `. P* `
--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 添加服务0 L- s( B5 o! U+ V5 I
--chkconfig --list 显示服务列表
8 Q5 J9 r* P+ M% v, v; ~' i 如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入 chkconfig --level 345 mysql on- X1 x4 L$ Q( C0 v1 ~
--reboot重启电脑: d- x* M2 l4 X5 ]8 R- o
--netstat -na | grep 3306,如果看到有监听说明服务启动了- K4 C2 `. A1 ^! c; Z% o b) ^5 i) k
l.设置mariadb开机自启动
4 _! j: s0 j' ^' p--vi /etc/my.cnf [mysqld] ...
3 T# V7 }" ?7 Q character-set-server=utf8mariadb默认的数据库字符集为latin1,如果需要修改为支持中文字符的数据库,则需要修改以下配置参数。
3 @- y7 A5 M$ l) c; h7 L6 l, ^& S9 R5 @! s, a4 f& M
|
|