CentOS下MySQL双机热备配置(4)

这样就可以进行同步了,在master的aeaiesb库中创建表,并插入数据会实时在slave端显示。

5.3   常见问题 5.3.1   更改MySQL数据存储位置

首先,MySQL安装完成后不像 SQLServer 默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。

a、数据库目录    /var/lib/mysql/

b、配置文件        /usr/share/mysql(mysql.server命令及配置文件)

c、相关命令        /usr/bin(mysqladmin mysqldump等命令)

d、启动脚本        /etc/rc.d/init.d/(启动脚本文件mysql的目录)

其次,由于MySQL数据库目录占用磁盘比较大,而MySQL默认的数据文件存储目录为 /"var/lib/mysql",也可以把要把数据目录移到"/" 根目录下的 "mysqldata" 目录中

首先停止MySQL服务

终端执行命令

/etc/init.d/mysql  stop

 

在终端将原来mysql数据库目录文件全部都复制到新的数据库目录下

cp -r /var/lib/mysql  /disk1/mysqldata

 

修改my.cnf配置文件

先备份,再修改

cp /etc/my.cnf  /etc/my.cnfbak

vi /etc/my.cnf

 

在打开的文件中找到datadir这行代码,查看后面的路径,做备份(在这行代码前加#)

原路径:/var/lib/mysql

新路径:/disk1/mysqldata

修改mysqld

先备份,再修改

cp /etc/init.d/mysqld /etc/init.d/mysqldbak

vi  /etc/init.d/mysqld

 

datadir原路径:/var/lib/mysql

datadir新路径:/disk1/mysqldata

修改mysqld_safe文件

cp /usr/bin/mysqld_safe  /usr/bin/mysqld_safebak

vi  /usr/bin/mysqld_safe 

 

datadir原路径:/var/lib/mysql

datadir新路径:/disk1/mysqldata

建立一个mysql.sock的链接

ln -s /disk1/mysqldata  /mysql.sock /var/lib/mysql/mysql.sock 

 

重启服务

service mysqld  start 

 

进入MySQL命令行查询数据文件目录地址

mysql> show variables like '%dir%';

 
5.3.2   启动失败可能的错误原因

通过查看MySQL日志时发现Table ‘mysql.plugin’ doesn’t exist这样的问题,这是因为新安装的MySQL需要初始化数据库

解决步骤:

1) 进入./mysql/bin目录下,执行脚本./mysql_install_db;

2) 执行完(1)后,此时会在./mysql/var目录下创建两个目录文件mysql、test;

3) 修改mysql、test两个目录及目录下所有文件的权限:

指令:chown mysql:mysql -R mysql test

日志报错

mysqld_safe Starting mysqld daemon with  databases from /var/lib/mysql

[Warning] Can't create test file  /var/lib/mysql/localhost.lower-test

[Warning] Can't create test file  /var/lib/mysql/localhost.lower-test

/usr/sbin/mysqld: Can't change dir to  '/var/lib/mysql/' (Errcode: 13)

[ERROR] Aborting

[Note] /usr/sbin/mysqld: Shutdown complete

 

首先关闭selinux服务

cd /etc/selinux

vi config

 

修改selinux为disabled,重启机器

启动失败时

Fatal error: Can't open and lock  privilege tables: Table 'mysql.host' doesn't exist

 

使用命令

mysql_install_db --user=mysql 

 

初始化命令

启动MySQL成功后,登录时

ERROR 1045 (28000): Access denied for  user 'root'@'localhost' (using password: YES)   

 

需要重置密码

1) 首先停止MySQL服务

service mysql stop 

 

2) 用mysqld_safe重启服务

/usr/bin/mysqld_safe --skip-grant-tables

 

3) 无密码登录

mysql –u root

 

4) 授权

grant all privileges on *.* to  'root'@'localhost' identified by '密码' with grant  option;

 

授权新的数据库文件存放地址

chown -R mysql:mysql /disk1/mysqldata

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/170db8402583b196c98e02b1a8176407.html