关于mysql主从:Centos安装Mysql数据库和Mysql主从配置

7次阅读

共计 3600 个字符,预计需要花费 9 分钟才能阅读完成。

Centos 装置 mysql


#查看零碎中是否已装置 mysql 软件
yum list installed | grep mysql

#删除
yum -y remove mysql-libs.x86_64

#下载 mysql 包
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

#解压
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

#批改目录名
mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql-5.7.16

#创立数据保留目录
mkdir -p /data/datas/mysql/data  

#查看 mysql 用户组
cat /etc/group |grep mysql 

#查看 mysql 用户 
cat /etc/passwd |grep mysql 

#创立 mysql 用户组
groupadd mysql

#创立 mysql 并增加到 mysql 用户组
useradd mysql -g mysql

#给 mysql 用户没有登录权限
usermod -s /sbin/nologin mysql

#批改目录的权限为 mysql 用户
chown -R mysql:mysql /data/apps/mysql-5.7.16
chown -R mysql:mysql /data/datas/mysql

#进入目录
cd /data/app/mysql-5.7.16/bin/

#初始化装置 mysql
./mysqld --user=mysql --basedir=/data/app/mysql-5.7.16/ --datadir=/data/datas/mysql/data --initialize
#如果报 libaio.so 错:yum -y install libaio
#初始化 mysql 胜利之后记住明码  root@localhost: LIFt4H-lrZQ+

#批改配置文件
cd /data/app/mysql-5.7.16/support-files/
vim mysql.server
basedir=/data/app/mysql-5.7.16
datadir=/data/datas/mysql/data

#将默认生成的 my.cnf 备份
mv /etc/my.cnf /etc/my.cnf.bak

# 启动 mysql 胜利
./mysql.server start 

# 进行 mysql
./mysql.server stop

配置 mysql


#创立软链接
ln -s /data/app/mysql-5.7.16/bin/mysql /usr/bin/mysql

#查看 mysql 版本
mysql --version

#复制配置文件
cp my-default.cnf /data/app/mysql-5.7.16/my.cnf

cd /data/app/mysql-5.7.16/
#批改配置文件
vim my.cnf  
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET  NAMES utf8mb4'

basedir = /data/app/mysql-5.7.16
datadir = /data/datas/mysql/data

#设置开机启动
cp /data/app/mysql-5.7.16/support-files/mysql.server /etc/init.d/mysqld

#可执行权限
chmod 755 /etc/init.d/mysqld 

# 确认 MySQL 自启动
chkconfig --list mysqld  

#设置 MySQL 开启自启动
chkconfig mysqld on  

# 再查看 MySQL 自启动
chkconfig --list mysqld
 mysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off # 如果 2 -- 5 为 on 的状态就 OK

root 明码与近程连贯


#启动 mysql 服务
service mysqld start

#初始化 mysql 用户 root 的明码
./bin/mysqladmin -uroot -p'4cSM((-qlNz-' password 'root'  
#4cSM((-qlNz- 为下面初始化 mysql 生成的随机明码

#输出明码进入
mysql -uroot -p  

#mysql 近程受权
#输出明码进入
mysql -uroot -p  
grant all privileges on *.* to 'root'@'%' identified by 'root';
FLUSH PRIVILEGES;

#凋谢端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dports 3306 -j ACCEPT
service iptables restart

主从配置

主配置

cd /data/app/mysql-5.7.16/

#批改配置
vim my.cnf
port = 3306
server_id = 1 #服务 id,个别为 ip 后三位
binlog-do-db = beyond #要同步的数据库
#binlog-ignore-db = mysql,sys,information_schema,performance_schema #不必同步的数据库, 多个以逗号分隔
log-bin = mysql-bin #开启 log-bin

#其余配置优化
max_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30
max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
#慢 sql 打印
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.log

#重启
service mysqld restart 

#创立一个主从同步的用户
mysql -uroot -p
create user 'repl'@'%' identified by '123456'; 
#受权
grant replication slave on *.* to 'repl'@'%' identified by '123456'; 
flush privileges;

show master status; #查看状态 
从配置

cd /data/app/mysql-5.7.16/
#批改配置
vim my.cnf
port = 3306
server_id = 2 #服务 id,个别为 ip 后三位
read_only = 1 #只读

#其余配置优化
log-bin = mysql-bin
max_binlog_size = 500M
binlog_cache_size = 2M
max_binlog_cache_size = 4M
expire_logs_days = 30
max_connections = 500
max_connect_errors = 10000
table_open_cache = 256
long_query_time = 1
slow-query-log
#慢 sql 打印
slow_query_log_file = /data/datas/mysql/data/slow_query_log_file.log

relay_log = /data/datas/mysql/data/mysqld-relay-bin
  
relay_log-index = /data/datas/mysql/data/mysqld-relay-bin.index

#重启服务
service mysqld restart 

mysql -uroot -p
#设置同步
change master to master_host='主的 ip', master_port=3306, master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=780;     
#mysql-bin.000002 和 780 是从主里查的,show master status; 命令查看

#启动从库复制线程
start slave; 

#查看状态
show slave status; 
#次要查看两个参数:Slave_IO_Running 和 Slave_Sql_Running。这两个值为 Yes,OK 从库配置好了

#接下来在 beyond 数据库的操作都会同步到从数据库 

正文完
 0