技术支持 云市场镜像产品 数据库运行环境 MySQL 镜像使用指南

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;