MySQL 5.7.16 安装及主从配置
来源:靑龍一笑的博客 作者:靑龍一笑 发布时间:2016-12-06 16:14:21 点击量:871 评论:0
[root@dbserver01 softwares]# groupadd mysql
[root@dbserver01 softwares]# useradd -g mysql -s /bin/false mysql
[root@dbserver01 softwares]# tar xvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@dbserver01 softwares]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
[root@dbserver01 softwares]# cd /usr/local/mysql/
[root@dbserver01 mysql]# bin/mysqld --initialize
[root@dbserver01 softwares]# useradd -g mysql -s /bin/false mysql
[root@dbserver01 softwares]# tar xvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@dbserver01 softwares]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
[root@dbserver01 softwares]# cd /usr/local/mysql/
[root@dbserver01 mysql]# bin/mysqld --initialize
这里会生成一个 root 帐号的随机密码。
设置 mysql 目录的权限:
[root@dbserver01 mysql]# chown -R root .
[root@dbserver01 mysql]# chown -R mysql data/
[root@dbserver01 mysql]# chgrp -R mysql .
[root@dbserver01 mysql]# chown -R mysql data/
[root@dbserver01 mysql]# chgrp -R mysql .
拷贝一个配置文件出来:
[root@dbserver01 mysql]# cp support-files/my-default.cnf /etc/my.cnf
配置成系统服务,并设为开机启动:
[root@dbserver01 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysql
[root@dbserver01 mysql]# chmod +x /etc/rc.d/init.d/mysql
[root@dbserver01 mysql]# chkconfig --add mysql
[root@dbserver01 mysql]# chmod +x /etc/rc.d/init.d/mysql
[root@dbserver01 mysql]# chkconfig --add mysql
配置环境变量:
[root@dbserver01 mysql]# vi /etc/profile
添加以下代码:
MySQL_HOME=/usr/local/mysql
PATH=$MySQL_HOME/bin:$PATH
export MySQL_HOME PATH
PATH=$MySQL_HOME/bin:$PATH
export MySQL_HOME PATH
主服务器配置:
[root@dbserver01 mysql]# vi /etc/my.cnf
添加如下代码:
[mysqld]
# 主服务器 ID
server-id = 1
# 日志格式设置
log-bin = mysql-master-bin
# 指定需要同步的数据库
binlog-do-db = blog
# 指定不需要同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
# 服务器端字符集
character_set_server = utf8
# 数据库或数据表的默认排序方式
collation-server = utf8_general_ci
# 忽略客户端的字符集
character-set-client-handshake = false
# 忽略大小写
lower_case_table_names = 1
# 服务器最大连接数
max_connections = 3000
[mysqld_safe]
# 每个进程打开文件数
open-files-limit = 8192
# 主服务器 ID
server-id = 1
# 日志格式设置
log-bin = mysql-master-bin
# 指定需要同步的数据库
binlog-do-db = blog
# 指定不需要同步的数据库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
# 服务器端字符集
character_set_server = utf8
# 数据库或数据表的默认排序方式
collation-server = utf8_general_ci
# 忽略客户端的字符集
character-set-client-handshake = false
# 忽略大小写
lower_case_table_names = 1
# 服务器最大连接数
max_connections = 3000
[mysqld_safe]
# 每个进程打开文件数
open-files-limit = 8192
启动主服务器 MySQL 数据库:
[root@dbserver01 mysql]# service mysql start
使用随机密码登录:
[root@dbserver01 mysql]# bin/mysql -uroot -p
重设 root 密码:
mysql> set password=password('1234abcd');
开启远程访问的权限:
mysql> grant all on *.* to 'root' identified by '1234abcd';
mysql> flush privileges;
mysql> flush privileges;
创建用于主从复制的帐号:
mysql> grant replication slave on *.* to 'root'@'192.168.186.134' identified by '1234abcd';
对主数据库进行锁表:
mysql> flush tables with read lock;
开启一个会话窗口,登录到 MySQL,查看两个值:二进制日志文件及其位置。
对主数据库表进行解锁:
mysql> unlock tables;
从服务器配置:
[root@dbserver02 mysql]# vi /etc/my.cnf
添加如下内容:
[mysqld]
# 从服务器 ID
server-id = 2
# 日志格式设置
log-bin = mysql-slave-bin
# 指定需要同步的数据库
replicate-do-db = blog
# 指定不需要同步的数据库
replicate-ignore-db = mysql
replicate-ignore-db = sys
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
# 将从服务器的更新写入二进制日志
log-slave-updates
# 服务器端字符集
character_set_server = utf8
# 数据库或数据表的默认排序方式
collation-server = utf8_general_ci
# 忽略客户端的字符集
character-set-client-handshake = false
# 忽略大小写
lower_case_table_names = 1
# 服务器最大连接数
max_connections = 3000
[mysqld_safe]
# 每个进程打开文件数
open-files-limit = 8192
# 从服务器 ID
server-id = 2
# 日志格式设置
log-bin = mysql-slave-bin
# 指定需要同步的数据库
replicate-do-db = blog
# 指定不需要同步的数据库
replicate-ignore-db = mysql
replicate-ignore-db = sys
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
# 将从服务器的更新写入二进制日志
log-slave-updates
# 服务器端字符集
character_set_server = utf8
# 数据库或数据表的默认排序方式
collation-server = utf8_general_ci
# 忽略客户端的字符集
character-set-client-handshake = false
# 忽略大小写
lower_case_table_names = 1
# 服务器最大连接数
max_connections = 3000
[mysqld_safe]
# 每个进程打开文件数
open-files-limit = 8192
启动从服务器 MySQL 数据库:
[root@dbserver02 mysql]# service mysql start
使用随机密码登录:
[root@dbserver02 mysql]# bin/mysql -uroot -p
重设 root 密码:
mysql> set password=password('1234abcd');
开启远程访问的权限:
mysql> grant all on *.* to 'root' identified by '1234abcd';
mysql> flush privileges;
mysql> flush privileges;
从数据库设置同步的主数据库信息:
mysql> change master to master_host='192.168.186.134',master_user='root',master_password='1234abcd',master_log_file='mysql-master-bin.000001',master_log_pos=1124;
启动从数据库的同步线程:
mysql> start slave;
查看从数据库的slave状态:
mysql> show slave status \G
如果以下两个参数都是Yes,说明主从配置成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_SQL_Running: Yes
版权所有 © 2005-2023 靑龍一笑的博客 Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.