标签 mysql 下的文章

MySQL数据库多服务器实时同步

严格说来,MySQL的数据库同步不能叫“同步”,因为它是单向的,只能从主服务器(master)到从服务器(slave),官方文档称之为“replication(复制)”。

通过同步,可以自动备份数据库到另一台机器;可以负载均衡,把写操作放在主服务器,读操作分散在从服务器;还可以在主服务器故障时,临时进行切换,故障排除后再切回来……当然,本文涉及到的,只是如何设置同步。

1 系统环境
1.1 主服务器
Centos6,MySQL 5.1.57。 MySQL使用MyISAM存储引擎,关闭InnoDB存储引擎。
若用到InnoDB的数据库,其同步设置会有差异,本文不涉及。

mysql -u root -p

登入数据库,然后执行

SHOW TABLE STATUS FROM database;

查看database数据库使用何种存储引擎。

- 阅读剩余部分 -

MySQL常用操作语句

1、登陆和进入指定数据库:

mysql -u root -p
mysql -h localhost -u root -p database_name

2、列出所有数据库:

show databases;

3、列出所有用户:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

4、修改指定用户的密码:

SET PASSWORD FOR 'bob'@'%.example.org' = PASSWORD('cleartext password');

- 阅读剩余部分 -

为MySQL生成SSL证书和密钥

MySQL支持SSL通信,不过需要自行生成所需要的证书和密钥。

生成过程中请根据提示提供相应的信息。如果证书只是用来测试,一路回车即可;如果在实际环境中使用,尽量提供有意义的信息。如果某个信息要留空,可以输入英文句号(.)。请自行保存生成过程中所输入的证书密码。

1、准备工作
创建干净的环境:

rm -rf newcerts
mkdir newcerts && cd newcerts

2、生成CA证书
需要注意,CA证书的Comman Name不能与服务器请求文件和客户端的请求文件的Comman Name相同,否则证书验证阶段会报类似“error 18 at 0 depth lookup:self signed certificate”的错误。命令如下:

openssl genrsa 2048 > cakey.pem
openssl req -new -x509 -nodes -days 3600 -key cakey.pem -out cacert.pem

- 阅读剩余部分 -

如何删除mysql-bin.0000*日志文件并关闭MySQL日志

删除日志:
执行:

/usr/local/mysql/bin/mysql -u root -p

输入密码登录后再执行:

reset master;

如何关闭MySQL的日志功能:
修改/etc/my.cnf 文件,找到:

log-bin=mysql-bin
binlog_format=mixed

再这两行前面加上#,将其注释掉,再执行

/etc/init.d/mysql restart

linux下自动备份mysql到网站目录

之前发了自动备份网站文件和数据库上传到FTP空间的脚本 但是没有远程FTP的用户呢,可以使用下面这个脚本,自动备份mysql到WEB目录下以便下载到本地!

#!/bin/bash
MYSQL_USER=用户名
MYSQL_PASS=密码
MYSQL_DATA=数据库户称
DataBakName=Data_$(date +"%Y%m%d").tar.gz
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS --databases $MYSQL_DATA --lock-tables=false > /home/backup/databackup.sql
tar zcf /home/backup/$DataBakName /home/backup/databackup.sql
rm -rf /home/backup/databackup.sql

保存退出

- 阅读剩余部分 -