MySQL 镜像使用指南
Mysql 的用户名/密码保存在系统目录下:
cat /alidata/account.log
关于如何修改 Mysql 的密码,可以参考如下:
mysqladmin -uroot -p老密码 password 新密码
注意:老密码即您 Mysql 的 Root 用户当前的密码,新密码即您修改后的密码。 -p 跟老密码之间没有空格。
软件的主目录:/alidata
Mysql主目录:/alidata/server/mysql/data
日志目录: /alidata/log/mysql/
为 mysql 存放日志主目录
Mysql:
/etc/init.d/mysqld start|stop|restart
如果您需要 mysql 的主从环境,请先开通 mysql master 镜像,然后开通 mysql slave 镜像,先运行 mysql master,之后在 mysql slave 中运行脚本进行配置:
1、脚本存放路径:
/root/mysql_slave.sh
2、配置方式 (运行以下命令 ):
bash mysql_slave.sh
2.1、要求输入远程m aster ip 地址,这里需要填写m aster 的内网 ip。 备注:填写内网ip的时候,请确定主从镜像的内网是否互通,及 master 的3306 mysql 服务端口是否打开,否则会导致主从失败。否则会出现错误提示:“error : connect to 3306 (tcp) failed: Connection refused”
这里输入公网 ip 也是可行,只不过主从通过内网同步才能达到最大效率,公网的传输速度会影响主从同步的效率。
2.2、要求输入 master repl 的密码: 此密码在 master 镜像中的 /alidata/account.log 文件查看
What is master repl pass?
2.3、创建完成确认:
slave created
3、查看 3.1、由于此时从库数据库中的数据全部同步主库数据库中的数据,包括用户名及密码。 所以此时从库的 mysql 的 root 密码,即为主库 mysql 的 root 密码。
3.2、完成主从配对脚本,我们可以登陆从库中的Mys ql ,执行命令
“show slave status\G” 我们可以看到:
Mysql 从镜像如果主从配置成功, mysql 从库中的数据将跟 mysql 主库中的数据一致,即 mysql 密码也跟主库中 mysql 密码一样。所以如果您运行 mysql 从镜像的主从配置脚本后,再查看 /alidata/account.log 文件中的内容, 就会出现 “And the main library the same password !” 的字样。
将 mysql 迁移至数据盘中
镜像部署的 mysql 的安装目录及数据目录都存放在系统盘中,同样考虑到系统盘空间不够用的情况,后面如果我们部署的 mysql 数据量很大,这里就需要我们将我们的 mysql 迁移至数据盘中。
mysql 迁移至数据盘中,一般指将 mysql 的数据目录迁移至数据盘中。具体操作步骤可以参考如下:
1、首先格式化磁盘,并将数据盘挂载在 mnt 目录下(根据您自己的需求,也可以挂载在其他目录下)
mkdir -p /mnt/data
2、用 mysqldump 命令导出您项目所有的数据,命令参考如下:
mysqldump -p --all-databases > all.sql
3、停止 mysql :
/etc/init.d/mysqld stop
4、vim /etc/init.d/mysqld 将文件中 “datadir=/alidata/server/mysql/data” 中的目录地址更改为您迁移至数据盘中的目录地址,即 “datadir=/mnt/data” 。
5、然后用以下命令初始化一个全新的数据库环境:
/alidata/server/mysql/scripts/mysql_install_db –basedir=/alidata/server/mysql –datadir=/mnt/data –user=mysql 注意:datadir为您mysql的数据目录。
6、启动 mysql ,然后将数据还原至新的数据盘中:
/etc/init.d/mysqld start
mysql < all.sql
/etc/init.d/mysqld restart
很多用户反馈,用镜像生成系统后,ECS 本地能够连接 mysql ,为何远程连接不上 mysql 呢?这是因为默认安装的 mysql ,出于安全考虑,只能本地连接。
如果您需要远程连接,这里就需要设置一下 mysql 的权限表。具体设置的步骤如下:
1、在您的ECS上连接进入 mysql 。
2、执行以下 mysql 命令:
use mysql #打开 mysql 数据库
将 host设置为 % 表示任何 ip 都能连接 mysql ,当然您也可以将 host 指定为某个 ip 。
update user set host='%' where user='root' and host='localhost';
flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的 mysql 了。 3、如果您想关闭远程连接,恢复 mysql 的默认设置(只能本地连接),您可以通过以下步骤操作:
use mysql #打开 mysql 数据库
update user set host='localhost' where user='root'; #将 host 设置为 localhost 表示只能本地连接 mysql
flush privileges; #刷新权限表,使配置生效
备注:您也可以添加一个用户名为 yuancheng ,密码为 123456 ,权限为 % (表示任意 ip 都能连接)的远程连接用户。命令参考如下:
grant all on *.* to 'yuancheng'@'%' identified by '123456';
flush privileges;