数据目录更改后,mysql 无法连接

数据目录更改后,mysql 无法连接

我已经更改了 /etc/my.cnf 中的数据目录。

datadir=/data/mysql
socket=/data/mysql/mysql.sock

我还将 mysql 文件夹从

/var/lib/mysql/ 

/data/mysql

现在当我连接到 mysql 时出现以下错误:

[root@youradstats-copy mysql]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

当我查看 /var/logs/msqld.log 时,我收到以下消息:

InnoDB: Setting log file /data/mysql/ib_logfile0 size to 512 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200 300 400 500
120704  7:43:31  InnoDB: Log file /data/mysql/ib_logfile1 did not exist: new to be created
InnoDB: Setting log file /data/mysql/ib_logfile1 size to 512 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200 300 400 500
InnoDB: Cannot initialize created log files because
InnoDB: data files are corrupt, or new data files were
InnoDB: created when the database was started previous
InnoDB: time but the database was not shut down
InnoDB: normally after that.
120704  7:43:36 [ERROR] Plugin 'InnoDB' init function returned error.
120704  7:43:36 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

在进行这些更改之前,我正确关闭了 mysql,然后正确启动了它,但不知道为什么会收到这些消息。请帮忙解决问题,因为我已经在 my.cnf 中更改了套接字路径,但它仍然指向旧路径......

答案1

检查一下新位置是否有套接字文件?

ls -la /data/mysql/mysql.sock

如果存在,权限是否正确?如果您不确定,请告诉我们。

如果存在,下一步是尝试:

mysql -S /data/mysql/mysql.sock

如果可行,则只需更改文件部分sock=/path/中的即可。如果不存在,则应创建它。[client]my.cnf

这是不是[client]当您更改文件部分中的内容时,需要重新启动 mysql my.cnf

另外,您发布的日志消息显示您没有/var/lib/mysql/正确复制目录中的数据,或者您存在权限问题。如果您不确定,请向我们显示以下输出:ls -la /data/mysql/

答案2

您的 /etc/my.cnf 或 /root/.my.cnf 文件中应该有 [mysql-client] 部分,它定义了套接字的位置。

如果您阅读 MySQL 日志,它会告诉您需要重新启动数据库(/etc/init.d/mysqld restart)。

相关内容