共计 4031 个字符,预计需要花费 11 分钟才能阅读完成。
CentOS6.7 安装 MySQL5.7.18
1、解压到 /usr/local 目录
# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local
2、mysql-5.7.18-linux-glibc2.5-i686 文件夹重命名为 mysql
# cd /usr/local
# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql
3、新建 mysql 用户组和 mysql 用户
# groupadd mysql
# useradd -r -g mysql mysql
4、新建数据目录
# cd /usr/local/mysql
# mkdir data
5、更改所有者以及授权 755
# cd /usr/local
# chown -R mysql:mysql mysql/
# chmod -R 755 mysql/
6、初始化 mysqld
# cd /usr/local/mysql
# ./bin/mysqld –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data –initialize
记录下 root 的初始密码 : GjlI08>p4kDw
7、将 mysqld 添加成服务,并启动它
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
建立 mysql 默认的配置文件 /etc/my.cnf,并添加图片中内容
# vim /etc/my.cnf
保存并退出 my.cnf,启动 mysqld
# service mysqld start
出现如下信息表示启动成功
查看 mysql 是否启动成功
# ps -ef|grep mysql
出现如下信息表示启动成功
当然也可以查看 mysqld 的状态
# service mysqld status
8、登录 mysql 并修改 root 密码
# cd /usr/local/mysql
# ./bin/mysql -uroot –p
输入初始密码,步骤 6 中有生成,出现如下信息表示登录成功
修改 root 密码
mysql> SET PASSWORD = PASSWORD(‘123456’);
mysql> FLUSH PRIVILEGES;
初次登录没有修改 root 的密码,操作数据库会出现如下错误提示,那么需要修改 root 用户的密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
9、设置 mysql 远程可访问 (前提是防火墙必须关闭,chkconfig iptables off: 设置自动启动为关闭,service iptables sto: 关闭防火墙)
先登录到 mysql
mysql> use mysql
mysql> update user set host = ‘192.168.0.4’ where user = ‘root’;
mysql> FLUSH PRIVILEGES;
192.168.0.4 即是可远程访问本地 mysql 的远程 ip,若想任意 ip 都能访问本地 mysql,那么只需要将 192.168.0.4 换成 % 即可
mysql> update user set host = ‘%’ where user = ‘root’;
mysql 主从复制
windows 上 mysql 做 master,linux 上 mysql 做 slave,mysql 版本是 5.7.18;windows 的 ip 为 192.168.0.4,linux 的 ip 为 192.168.0.223
1、master 上开启 binlog 日志
在 mysql 的 home 目录找到 my.ini 文件 (没有则新建),配置上如下内容
[mysqld]
# set basedir to your installation path
basedir=D:\\mysql-5.7.18
# set datadir to the location of your data directory
datadir=D:\\mysql-5.7.18\\data
port = 3306
log-bin = mysql-bin #[必须] 启用二进制日志
server-id = 4 #[必须] 服务器唯一 ID,默认是 1,最好取 ip 的后 3 位
expire-logs-days = 7 #只保留 7 天的二进制日志,以防磁盘被日志占满
binlog-ignore-db = mysql #不备份的数据库
binlog-ignore-db = information_schema
binlog-ignore-db = performation_schema
binlog-ignore-db = sys
binlog-do-db=mybatis #需要做复制的数据库名
测试 log_bin 是否成功开启
mysql> show variables like ‘%log_bin%’;
出现下图,log_bin 为 ON 则表示开启成功,OFF 表示开启失败
2、master 的数据库中建立备份账号 :backup 为用户名,% 表示任何远程地址,如下表示密码为 1234 的任何远程地址的 backup 都可以连接 master 主机
mysql> grant replication slave on *.* to ‘backup’@’%’ identified by ‘1234’;
mysql> use mysql
mysql> select user,authentication_string,host from user;
可看到我们刚创建的备份账号:
3、拷贝数据
重启 MySQL 服务并设置读取锁定
net stop MySQL
net start MySQL
登录 mysql
mysql> flush tables with read lock;
读取锁定的意思是只能读取,不能更新,以便获得一个一致性的快照
查看主服务器上当前的二进制日志名和偏移量值
mysql> show master status \G
复制的过程如下:
File 表示实现复制功能的日志,即上图中的 Binary log;Position 则表示 binlog 日志文件的偏移量之后的都会同步到 slave 中,那么在偏移量之前的则需要我们手动导入
从 master 导出数据,然后导入到 slave 中
另外开一个命令窗口,用 mysqldump 命令进行数据的导出
将 d:\a.txt 拷贝到 slave 上,然后导入到 mysql 数据库中,slave 上的 mybatis 数据库不存在则先创建,然后再导入
导出是 mysqldump,导入是 mysql
4、配置 slave(192.168.0.223)
slave 是 linux 环境,mysql 的配置文件是 /etc/my.cnf,不存在则新建,配上如下内容
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
log-bin=mysql-bin
server-id=223
重启 slave 数据库
# service mysqld restart
登录 slave 数据库,并做如下设置
mysql> stop slave;
mysql> change master to
master_host=’192.168.0.4′,
master_user=’backup’,
master_password=’1234′,
master_log_file=’mysql-bin.000005′,
master_log_pos=601;
各个参数含义:
master_host 实现复制的主机的 IP 地址
master_user 实现复制的远程登录 master 的 mysql 的用户,在步骤 2 有设置
master_password 实现复制的远程登录 master 的 mysql 的面,在步骤 2 有设置
master_log_file 实现复制的 binlog 日志文件 在步骤 3 标红的框框中
master_log_pos 实现复制的 binlog 日志文件的偏移量 在步骤 3 标红的框框中
mysql> start slave;
查看 slave 从机的状态
mysql> show slave status \G
若图中标记的那两项的值为 Yes,则表示 slave 设置成功
5、关闭掉主数据库的读取锁定
mysql> unlock tables;
6、测试
前面没出问题的话, 那么 master 上的 mybatis 数据的操作都会同步到 slave 的 mybatis 上
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-08/146086.htm