二进制方式安装Mysql并配置Mysql主从

一.  二进制方式安装Mysql:

        1.  创建mysql用户:

[root@node2 ~]# groupadd -r -g 306 mysql

[root@node2 ~]# useradd mysql -g 306 -u 306 -r

        2.  解压mysql压缩包:

[root@node2 ~]# tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar

[root@node2 ~]# tar -xf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@node2 ~]# ln -sv /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64/ 
/usr/local/mysql

##添加环境变量:
[root@node2 ~]# vim /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

##重新加载环境变量:
[root@node2 ~]# source /etc/profile.d/mysql.sh

        3.  修改mysql目录的属主,数组:

[root@node2 ~]# chown -R mysql:mysql /usr/local/mysql/*

        4.  初始化数据库:初始化数据库会得到数据库的起始密码。

[root@node2 ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data

        5.  修改数据库配置文件:

[root@node2 ~]# \cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
##"\"表示强制覆盖原有文件,不用用户确认

[root@node2 ~]# vim /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data

##复制mysql的服务文件,改名为mysqld
[root@node2 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

##将mysql设为系统服务
[root@node2 ~]# chkconfig --add mysqld

##设置mysql开机自启
[root@node2 ~]# chkconfig mysqld on

##启动msyql服务
[root@node2 ~]# systemctl start mysqld

        6>.  登录msyql:

##先使用起始密码登录mysql
[root@node2 ~]# mysql -uroot -p'f&SZJRq4I)Y/'

mysql> alter user root@localhost identified by '123456';  ##修改数据库密码

mysql> \q

##如果起始密码无法登录mysql,则可以使用暴力破解法:
1. 修改mysql配置文件:
[root@node2 ~]# vim /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
skip-grant-tables  ##登录时不使用密码登录

2. 重启mysql服务:
[root@node2 ~]# systemctl restart mysqld.service

3. 登录数据库:
[root@node2 ~]# mysql

mysql> flush privileges;  ##刷新权限表

mysql> alter user root@localhost identified by '123456';  ##修改数据库密码

4. 删除配置文件中"skip-grant-tables"参数

5. 重启mysql服务

二.  配置mysql主从同步(一主两从):

        1>.  环境规划:

主机名 主机地址 角色
node2 192.168.188.12 master
node3 192.168.188.13 slave1
node4 192.168.188.14 slave2

        2>.  所有节点设置域名解析:

[root@node2 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.188.11 node1
192.168.188.12 node2
192.168.188.13 node3
192.168.188.14 node4

        3>.  修改mysql master配置文件:

[root@node2 ~]# vim /etc/my.cnf

[client]
port=3306

[mysql]
prompt="(\\u@\\h) [\d] >\\ "
no_auto_rehash

[mysqld]
user=mysql
port=3306
server_id=1  ##各节点的id必须唯一
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
character_set_server=utf8mb4
skip_name_resolve  ##关闭名称解析
gtid-mode=on  ##启动gtid类型
enforce-gtid-consistency=true  ##强制gtid的一致性
log-slave-updates=1  ##slave更新是否记录日志
log-bin=mysql-bin  ##开启二进制日志
relay-log=relay-log  ##开启中继日志
log_error=/usr/local/mysql/logs/error.log

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

        4>.  修改mysql slave配置文件:

[client]
port=3306

[mysql]
prompt="(\\u@\\h) [\d] >\\ "
no_auto_rehash

[mysqld]
user=mysql
port=3306
server_id=2  ##各节点的id必须唯一
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
character_set_server=utf8mb4
skip_name_resolve  ##关闭名称解析
gtid-mode=on  ##启动gtid类型
enforce-gtid-consistency=true  ##强制gtid的一致性
log-slave-updates=1  ##slave更新是否记录日志
log-bin=mysql-bin  ##开启二进制日志
relay-log=relay-log  ##开启中继日志
read_only=on  ##从节点开启只读
relay_log_purge=0  ##是否自动清空不需要的中继日志
log_error=/usr/local/mysql/logs/error.log

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

        5>.  重启集群个节点的mysql服务:

[root@node2 ~]# systemctl restart mysqld.service

        6>.  登录主库:

[root@node2 ~]# mysql -uroot -p'123456'

##授权一个用户slave
(root@localhost) [(none)] >grant replication slave,replication client on *.* 
to 'slave'@'192.168.188.%' identified by '123456';

##查看主库状态:
(root@localhost) [(none)] >show master status;
+------------------+----------+--------------+------------------+----------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                      |
+------------------+----------+--------------+------------------+----------------------------------------+
| mysql-bin.000001 |      470 |              |                  | 93037495-54f6-11ed-b5aa-000c293a1832:1 |
+------------------+----------+--------------+------------------+----------------------------------------+
1 row in set (0.00 sec)

        7>.  登录从库:

##node3,node4配置相同
[root@node3 ~]# mysql -uroot -p'123456'

##设定从主库同步
(root@localhost) [(none)] >change master to
    -> MASTER_HOST='192.168.188.12',  ##主库地址
    -> MASTER_PORT=3306,
    -> MASTER_USER='slave',  ##主从同步的用户
    -> MASTER_PASSWORD='123456',  ##主从同步用户密码
    -> MASTER_AUTO_POSITION=1;  ##中继日志的位置
Query OK, 0 rows affected, 2 warnings (0.01 sec)

##启动从库同步开关
(root@localhost) [(none)] >start slave;
Query OK, 0 rows affected (0.00 sec)

##查看从库状态,检查主从同步是否配置成功
(root@localhost) [(none)] >show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个参数的值要都是Yes,则表示主从配置成功

你可能感兴趣的:(web服务器集群,mysql,数据库,运维,linux)