MySQL相关命令及主从同步配置

一、安装及启动MySQL

1、安装MySQL

服务器端:

yum install mysql-server
yum install mysql-devel

安装客户端:

yum install mysql

2、启动/关闭/重启服务

service mysqld start
service mysqld stop
service mysqld restart

3、初始化配置

/usr/bin/mysql_secure_installation

4、设置允许远程连接

mysql: mysql -uroot -ptest123
update user set host='%' where user='root';

若是进入mysql报这个错:Access denied for user (using password: YES)
则如下解决:
(1)、关闭mysql

service mysqld stop

(2)、屏蔽权限

mysqld_safe --skip-grant-table

(3)、另起一个终端执行如下:

[root@zhoujietest ~]#mysql -u root
mysql>delete from user where user='';
mysql>flush privileges; #这个一定要执行,否则关闭之前的终端错误会重现

二、日志相关命令:

1、查看日志是否开启

show variables like ‘log_bin’;

日志文件在mysql的安装目录的data目录下

2、查看当前日志状态

Show master status;

3、查看二进制日志

shell>mysqlbinlog mail-bin.000001 | tail

4、日志相关配置

以下配置都是在/etc/my.cnf文件中的[mysqld]下进行:
(1)错误日志log-error开启方式:

log-error=log-error.txt

(2)查询日志

log=mysql-log.txt

(3)二进制日志

log-bin=mysql-bin   #记录内容:主要是记录所有的更改数据的语句,可使用mysqlbinlog命令恢复数据。

(4)慢SQL配置:

slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on

(5)配置需要记录日志的库(不配置的话全部记录)

binlog-do-db=dbname

(6)忽略库

binlog-ignore-db 

(7)复制模式

binlog_format=MIXED    #混合模式复制,其他两种模式请百度

5、开启日志

SET GLOBAL general_log = 'On';

三、备份相关命令

1、锁库

flush tables with read lock;

2、备份导出

mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --databases cmdb > /data/backup/cmdb.sql

3、解锁

unlock tables;

4、查看innoDB状态

show engine innodb status; 

5、恢复

mysql < back.sql

四、开启主从同步

1、配置主库

(1)授权给从数据库服务器

mysql>GRANT REPLICATION SLAVE ON *.* to 'slave1'@'192.168.8.11' identified by 'slave1password';
mysql>FLUSH PRIVILEGES;

(2)修改主库配置文件,开启binlog,并设置server-id
(3)查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复

2、配置从库

在/etc/my.cnf 添加下面配置:

[mysqld]
server-id=2
master-host=192.168.8.10
master-user=slave1
master-password=slave1password
master-port=3306
replicate-do-db=pan

在5.5之后,没有相关命令了,需要在mysql中执行相关操作,如下:

mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
  MASTER_PORT=3306,
  MASTER_USER='slave1',
  MASTER_PASSWORD='slave1pasword',
  MASTER_LOG_FILE='binlog.000001',
  MASTER_LOG_POS=1304; #后面两个参数的值与主库保持一致

3、启动slave进程

slave start或者start slave

查看slave进程状态:

show slave status\G;

4、同步主库已有数据到从库

主库操作:
(1)、停止主库的数据更新操作

mysql>flush tables with read lock;

(2)、新开终端,生成主数据库的备份(导出数据库)

[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql

(3)、将备份文件传到从库

[root@zhoujietest ~]# scp cmdb.sql [email protected]:/root/

(4)、主库解锁

mysql>unlock tables;

从库操作:
(1)、停止从库slave

mysql>slave stop;

(2)、新建数据库cmdb

mysql> create database cmdb default charset utf8;

(3)、导入数据

[root@ops-dev ~]# mysql -uroot -ptest123 cmdb<cmdb.sql 

(4)、查看从库已有该数据库和数据 

Mysql>show databases;
MySQL主从同步