关闭自动提交:
set autocommit=0;
centos安装mysql,并开启原程登陆
1:下载 MySQL Yum Repository
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2:添加 MySQL Yum Repository
yum localinstall mysql57-community-release-el7-8.noarch.rpm
3:验证下是否添加成功
yum repolist enabled | grep "mysql.*-community.*"
可以看到下面内:
[root@bogon software]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 1
mysql-tools-community/x86_64 MySQL Tools Community 1
mysql56-community/x86_64 MySQL 5.6 Community Server 13
4:选择要启用 MySQL 版本
查看 MySQL 版本,执行
yum repolist all | grep mysql
可以看到 5.5, 5.7 版本是默认禁用的,因为现在最新的稳定版是 5.6
[root@bogon software]# yum repolist all | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 启用: 14
mysql-connectors-community-source MySQL Connectors Community - Sourc 禁用
mysql-tools-community/x86_64 MySQL Tools Community 启用: 17
mysql-tools-community-source MySQL Tools Community - Source 禁用
mysql55-community/x86_64 MySQL 5.5 Community Server 禁用
mysql55-community-source MySQL 5.5 Community Server - Sourc 禁用
mysql56-community/x86_64 MySQL 5.6 Community Server 启用: 139
mysql56-community-source MySQL 5.6 Community Server - Sourc 禁用
mysql57-community-dmr/x86_64 MySQL 5.7 Community Server Develop 禁用
mysql57-community-dmr-source MySQL 5.7 Community Server Develop 禁用
可以通过类似下面的语句来启动某些版本
yum-config-manager –disable mysql56-community
yum-config-manager –enable mysql57-community-dmr
5:通过 Yum 来安装 MySQL
yum install mysql-community-server
6:设置密码
systemctl start mysql
mysql_secure_installation
//在bash中执行,按提示一步一步往下走
7:防火墙设置
systemctl start firewalld
//出现mask错误信息 执行 systemctl unmask firewalld
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
这样就开放了相应的端口。
执行
firewall-cmd --reload
使最新的防火墙设置规则生效。
8:开启远程登录 远程访问设置
创建一个普通用户 sa ,密码是 some_pass
CREATE USER 'sa'@'%' IDENTIFIED BY 'some_pass';
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%';
创建一个管理员用户 admin 账号 ,密码是 some_pass
CREATE USER 'admin'@'%' IDENTIFIED BY 'admin';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
使授权立刻生效
flush privileges;
这里有个问题(腾讯云这个大坑有个安全组策略,一定要选择开放所有端口,不然你是不可能成功的!!)
ok,大功告成
2:配置mysql主从复制
1:首先在两台服务器上都按我上述步骤安装了相同的mysql版本
2:在主服务器上开启3306的tcp和udp连接
3:修改主服务器上的配置文件
`vim /etc/my.cnf`
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
binlog-do-db=wordpress //[可选] 设置需要同步的数据,如果不设置将同步所有数据库
binlog_ignore_db=mysql //[可选] 忽略mysql数据,因为mysql数据库是mysql的一些帐户存放,这个没有必要同步
日志一定要启用 之后会用到
4:修改从服务器上的配置文件
vim /erc/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
server-id 不能相同
5:重启两个mysql,
6: 登录主服务器为从服务器授权
GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'slave'; //
这表示在主服务器上开启一个用户名叫slave密码为slave的从服务器
然后登录msyql执行
show master status;
加下 mysql-bin后面的小数
和positon
格式如下
+------------------+----------+-----------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-----------------------+------------------+
| mysql-bin.000004 | 106 | wordpress,wordpress | mysql,mysql |
+------------------+----------+--------------+---------------------------+
flush privileges;
7:从服务器设定主服务器信息:
CHANGE MASTER TO MASTER_HOST = '主服务器ip';
CHANGE MASTER TO MASTER_USER = 'slave';
CHANGE MASTER TO MASTER_PASSWORD = 'slave';
CHANGE MASTER TO MASTER_PORT = 3306;
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000004';
//后面的000003 就是show master status中的信息 下面的一样
CHANGE MASTER TO MASTER_LOG_POS=106;
START SLAVE;
8:检测是否成功
在从服务器上执行命令:
show slave status\G;
Slave_IO_Running = Yes
Slave_SQL_Running = Yes
//这两个参数为yes就是没错
到此主从配置完毕!!