|
|
, [- |* L; @: O. a
/ v% @3 c6 r9 T2 p& p& r8 e/ A[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]三4 e1 c& C- h+ F V0 t
% P0 s+ [; o2 P9 E; [6 [
6 x0 K: x% y1 ` U& P, k( @% K& I2 g4 N0 R& M( d9 p
, g. g5 g5 X9 y$ l9 A2 i) u; A A; N: D. M& D
0 c' }& X! b/ `) ^: @9 E. P' U
0 U& I( ^, |* U, D, G! j3 q2 T+ Z6 f& F
0 J: }7 m t- w* t: \6 V9 ^) e4 @; ~$ Z) W3 T0 z8 v3 _* g
+ ~$ m6 p# T- @' {5 @0 {# V
6 a/ U8 b* I: F; f! z! @+ A( E: ?( R/ t+ ^+ d a2 f2 k, x: @6 Z: M& I( G
systemctl restart iptables.service #最后重启防火墙使配置生效+ w$ a) g: }# F- x% B
systemctl enable iptables.service #设置防火墙开机启动
& @# l9 s. i9 vvi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加
0 ~. H. V5 a$ ~& D:wq! #保存退出立即启用setenforce 07 ~! a! |9 S r) R: U0 B% x
d.关闭SELINUX
; Q( w9 m, m! Q) U' O7 J+ F5 k>vi /etc/ssh/sshd_config
" V5 B$ O0 W; C8 [" A8 D--打开并修改PermitRootLogin 为noservice sshd restart
% L, s$ l: N3 x6 Z* w* K+ @% b--打开并修改port为12887* \5 L* N/ n4 [
e.修改ssh默认端口,并取消允许root的ssh权限,防止暴力破解
( n1 p7 `; X$ V) r6 I7 F4 pa.上传安装source到目录,使用wincp或vsftpd,建议使用wincpshell> yum install -y gcc gcc-c++ # Z( J8 H! V; o# m3 \& W
安装依赖的package:7 C( p5 S. m4 K6 b( b
shell> yum install -y cmakelibaio bison ncurses-devel
+ w2 w5 v8 n) U( fshell> groupadd mariadb --创建mariadb组
6 u; K5 s# K" sshell> useradd -g mariadbmariadb --创建mariadb用户, r2 P1 X6 m6 m$ k8 `7 y
shell>passwd mariadb --修改密码b.添加用户和组
0 X# @$ [! q% r V p. eshell>cd /usr/local4 k$ e1 C* B6 y6 W
shell>tar -zxvf /root/mariadb-10.0.13-linux-x86_64.tar.gz shell>ln -s /usr/local/mariadb-10.0.13-linux-x86_64mariadbc.解压缩并创建链接
- x* {, f# w4 N+ E' R" u4 Bshell> cd mariadb; E Y) `- L2 z0 y4 @
shell> chown -R mariadb .shell> chgrp -R mariadb.d.修改文件所属用户及群组% B! n8 L. B' N
shell> scripts/mysql_install_db --user=mariadb (root用户安装需指定用户,若使用mariadb用户安装则不需指定)e.创建数据目录并初始化权限表4 T4 h- U" J8 C A; n5 D
f.再次修改文件所属用户: Q) v" F) r% @" j, r# B
shell> chown -R root .
c& U+ r1 ?. Qshell> chown -R mariadbdata 数据目录开放给mariadb用户,其他可以开放给root+ p- d+ `$ o, j- ]
g.安装完成启动mariadb/ z# U4 H V. [
shell > mkdir /var/log/mariadb* I5 c: z# t4 l8 p5 o
shell > cd /var/log | chown mariadb:mariadb mariadbshell > mkdir /var/run/mariadb4 F8 v y# p0 x
shell > cd /var/run | chown mariadb:mariadb mariadb1 Q9 c! [$ c( v3 q: ]' O
--创建链接, W6 A3 Z6 s( q# E2 R* O
shell > ln -s /usr/local/mariadb /usr/local/mysql --启动数据库
" l3 G7 j! ?% R Z' j5 [& yshell> bin/mysqld_safe --user=mariadb --创建两个日志目录并赋予相应权限+ P/ v! b/ s% v' K0 Z
将/usr/local/mariadb/bin加入$PATH变量中,并设置别名alias mariadb = 'mysql'
7 Q8 I" V' N9 g0 [编译环境变量source .bash_profileshell > mysql
9 \9 @$ q$ V7 g! I. Wh.环境变量配置并尝试连接mysql
. O, _' ]7 [- l***************************************************************************************************** Remove any pre-installed old mysql files / libraries usually linux distros installs MySQL 5.1 **
- f$ Z* m* X. O, r***************************************************************************************************rm -fR /etc/mysql8 i( M' Z, @0 X, d1 z
rm -fR /var/lib/mysql/mysql9 d+ ?- t5 l( j# m+ E5 N' x( Y! `5 p
rm -fR /var/lib/mysqlfind -R / -name mysql*find / -name mysql*
1 e- Z& f# X" [6 {' \; F** 中途如有错误,需重新安装,重新安装前先删除对应的文件
( {! |) ]+ z, @! r& D+ K; `四.mariadb安装及配置! [* D) A' ?$ a- ]) P {& t
A" S4 W, O. E& f/ r$ D" }2 C3 I
, h- t( `1 y& Y' A' @8 D
. O9 F; X6 Q# b) `2 Z
* e8 l# P; b' u) K# K, r. W
. Z% [2 `' C: q+ z6 n
# T! V/ Z( i9 ^# i1 v \ ?) }" y+ V% u- K5 F: L
5 u! d v: n @% r! I4 K2 [8 h% m9 v
. l5 w+ G! \8 [1 K; C, D& W
; f1 v! q6 Q. w: _rm -fR /opt/mysql2 u6 H4 Y4 |# ?& l5 D
find / -name mysql*重新解压文件.j.用户安全配置3 d' x3 `3 a( o0 D9 M+ W
列举出当前不需要密码的用户:
* N+ ]6 r* ~3 V列举出不需要密码可以连接的db:
) d+ i, _0 x+ U! S: O8 Jshell > SELECT User, Host, Password FROM mysql.user;
9 u! ~3 C% Q1 T8 p6 b0 b& u; ]允许匿名用户或无权限的用户访问test或test_前缀的数据库;--清除该表内容 J- n' V7 U% W8 M
shell> mysql -u root! D3 V9 @- }' ^! Z$ q1 G
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
; q+ c; s6 G8 F+ K! ~$ A# V/ V-> WHERE User = 'root';mysql> FLUSH PRIVILEGES;1).update7 F5 f3 c) p; v5 c5 s
shell> mysql -u root
# c5 t! Y" P) H+ o3 k+ D6 Jmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');
$ {( O/ o% _9 Z* F3 c3 Ymysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');$ p# o$ f- c- G, G, {+ o5 S
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');2).set password
9 T$ j c' m/ u# b4 I1 U9 G" u( y5 rshell> mysqladmin -u root password "newpwd"
0 V$ c8 i; i- a- J0 x/ H! `2 I) i1 \shell> mysqladmin -u root -h host_name password "newpwd"
- g. w0 m8 Y& g3).mysqladmin; V8 l9 E6 B& U8 k: m9 j% z4 N
root密码的设定可以有三种方式:
+ Y6 \! E; Z* v1 U; nmysql>drop user ''@'localhost';mysql>drop user ''@'mariadb\_server';& k( e. q8 ^8 m0 q% y& c
删除空用户:
# A1 n3 S5 X9 S9 r% @shell > select user,db from mysql.db;
4 J) ~$ @" k9 M4 Z% l+ Q+ u4 f7 H--测试数据库的安全保障:shell> mysql -u root -p( [) v7 |' r7 B
Enter password: (enter root password here)
j- N. ?7 @7 a6 C2 e! Smysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';mysql> FLUSH PRIVILEGES;--彻底删除测试数据库0 D9 t; u- K6 ~7 c6 L
mysql> drop database test;% ]9 ]( ]6 U/ h& [! ~
重启系统后报错找不到对应的/usr/local/mysql/bin/mysqld
4 B1 s$ _- a% W, `7 L原因是mysqld只认mysql/bin下面的mysqld,因此需要做一个链接到正确的mariadb/bin/mysqld允许远程root用户登录! f! k) R0 _ |6 Y# G$ O
mysql> grant all privileges on *.* to 'root'@'192.168.1.111' identified by 'y}%oTiaU-3' with grant option; mysql> flush privileges; k.用户管理:
' J: g. r' _$ Z--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 添加服务
. W! ]( K8 V5 g--chkconfig --list 显示服务列表1 _9 s+ H" A, @* a% P! G
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入 chkconfig --level 345 mysql on) T) W! J' y- B
--reboot重启电脑) {% D1 L, z8 v
--netstat -na | grep 3306,如果看到有监听说明服务启动了
- O& B4 N% M9 S( ?" B& A' d0 Y l.设置mariadb开机自启动
& X5 v( y% f, l% s' A d9 k2 T--vi /etc/my.cnf [mysqld] ...
! t% L+ P! w* k character-set-server=utf8mariadb默认的数据库字符集为latin1,如果需要修改为支持中文字符的数据库,则需要修改以下配置参数。
) q- q: [5 G5 v9 D/ j$ m# A, ^/ q/ B5 K) _- |& ^
|
|