mysql5.6移动目录以后无法启动

lingjiaju 2013-05-14 01:08:22
rpm方式安装的,安装后移动了目录,改了my.cnf文件,也改了/etc/rc.d/init.d/mysql里面的路径,结果service mysql start能启动,却无法连接,在/etc/rc.d/init.d/mysql路径下直接mysql start无法启动。
数据库路径已经改到我自定义的目录,但是启动的时候还是提示默认的那个安装路。
很奇怪的现象,当使用service mysql start启动数据库后,使用mysql -u 用户名 -p -S 自定义的新路径,这样登陆是OK的,因为指定了sock文件的路径,但是mysql -u 用户名 -p就无法登陆,提示找不到sock,提示的那个路径是原来的默认安装路径。
想请问下大家谁碰到过这种情况?
不要跟我说my.cnf里面client和mysqld下面修改soket路径,5.6的跟以前的不一样,只有mysqld,没有client,而且mysqld的soket我已经配置好了,不然service mysql start也不能启动。
下面是5.6的cnf配置文件:
[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
datadir = /home/mysql
port = 3306
server_id = 1
socket = /home/mysql/mysql.sock

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
...全文
417 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingjiaju 2013-05-14
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
检查一下MYSQL的错误日志。 另外建议先检查一下目录权限。 5.11.1. 错误日志 错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。 如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中写入一条消息。 在一些操作系统中,如果mysqld死掉,错误日志包含堆栈跟踪信息。跟踪信息可以用来确定mysqld死掉的地方。参见E.1.4节,“使用堆栈跟踪”。 可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。 如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。 在Windows中,如果未给出--console选项,错误输出总是写入.err文件。
数据库能启动,也能登陆,但是要手工指定sock目录,如果不指定sock目录就提示找不到,而且提示的那个目录是默认的安装目录。 mysql -u root -p -S /home/mysql/mysql.sock这样能登陆 mysql -u root -p这样无法登陆,提示找不到sock,提示的路径为默认安装路径。
rucypli 2013-05-14
  • 打赏
  • 举报
回复
service mysql start能启动 说明没问题 mysql5.6的首次登陆密码在/root/.mysql_secret里面 去拿出来登陆
wwwwb 2013-05-14
  • 打赏
  • 举报
回复
错误日志内容是什么,MYSQL5.6与其它版本有很大不同,建议备份后再重新 建立数据库,导入数据
ACMAIN_CHM 2013-05-14
  • 打赏
  • 举报
回复
检查一下MYSQL的错误日志。 另外建议先检查一下目录权限。 5.11.1. 错误日志 错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。 如果mysqld莫名其妙地死掉并且mysqld_safe需要重新启动它,mysqld_safe在错误日志中写入一条restarted mysqld消息。如果mysqld注意到需要自动检查或着修复一个表,则错误日志中写入一条消息。 在一些操作系统中,如果mysqld死掉,错误日志包含堆栈跟踪信息。跟踪信息可以用来确定mysqld死掉的地方。参见E.1.4节,“使用堆栈跟踪”。 可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err 并在数据目录中写入日志文件。如果你执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。 如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。 在Windows中,如果未给出--console选项,错误输出总是写入.err文件。
lingjiaju 2013-05-14
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
socket = /home/mysql/mysql.sock 你的socket生成到这里了 当然按照默认路径找不到,两种方法 1 要么把配置文件里的这一行删除 然后重启 2 你可以在my.cnf的[client]下添加这个一行 [client] socket = /home/mysql/mysql.sock 这样mysql登陆的时候就用这个socket了
又重新贴了一次,这次居然OK了,很奇怪,哈哈。
lingjiaju 2013-05-14
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
socket = /home/mysql/mysql.sock 你的socket生成到这里了 当然按照默认路径找不到,两种方法 1 要么把配置文件里的这一行删除 然后重启 2 你可以在my.cnf的[client]下添加这个一行 [client] socket = /home/mysql/mysql.sock 这样mysql登陆的时候就用这个socket了
mysql5.6的my.cnf里面只有mysqld,没有client,就算我自己把client贴进去也没用,这个我已经试过了
lingjiaju 2013-05-14
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
service mysql start能启动 说明没问题 mysql5.6的首次登陆密码在/root/.mysql_secret里面 去拿出来登陆
登陆不是问题,问题是登陆的时候要命令行指定sock路径,不然就无法登陆。 也就是所我mysql5.6的配置文件my.cnf我改了,/etc/rc.d/init.d/mysql也改了,但是系统还是默认我的sock文件在默认路径,而不是我改好后的路径。 加上5.6的my.cnf里面没有client配置,所以我想知道这个默认的sock路径怎么改。我把client自己贴到my.cnf里面都没用
rucypli 2013-05-14
  • 打赏
  • 举报
回复
socket = /home/mysql/mysql.sock 你的socket生成到这里了 当然按照默认路径找不到,两种方法 1 要么把配置文件里的这一行删除 然后重启 2 你可以在my.cnf的[client]下添加这个一行 [client] socket = /home/mysql/mysql.sock 这样mysql登陆的时候就用这个socket了

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧