首先,我尝试将数据库移动到新目录/media/external_drive
。
我按照网上的一些说明进行操作,例如:
http://article.my-addr.com/?show=linux_ubuntu_change_datadir-move_mysql_database_to_other_path
之后,似乎我可以通过sudo service mysql restart
重新启动mysql。
但是,当我尝试mysql -u root -p
时,我总是遇到以下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
然后我搜索sudo find / -name mysqld.sock
,但没有结果。
我还尝试将数据库文件(mysql
)移回/var/lib/mysql
,并取消移动数据库的所有内容。上面的错误仍然存在。
我完全迷失了。请帮忙!
以下是当前my.cnf
。我将datadir
更改为/media/external_drive
,稍后又更改了。
42 user = mysql
43 socket = /var/run/mysqld/mysqld.sock
44 port = 3306
45 basedir = /usr
46 datadir = /var/lib/mysql
47 tmpdir = /tmp
48 skip-external-locking
关于权限:
sudo ls -la /var/lib/mysql
total 1740832
drwx------ 6 root root 4096 2013-03-09 00:19 .
drwxr-xr-x 66 root root 4096 2013-03-06 21:18 ..
drwx------ 2 zhijia zhijia 4096 2013-03-06 16:58 AppSeq
drwx------ 2 zhijia zhijia 4096 2013-03-06 17:32 AppSeq1
-rwxrwxrwx 1 zhijia zhijia 0 2013-01-24 15:47 debian-5.1.flag
-rwxrwxrwx 1 zhijia zhijia 1772093440 2013-03-06 19:43 ibdata1
-rwxrwxrwx 1 zhijia zhijia 5242880 2013-03-09 00:13 ib_logfile0
-rwxrwxrwx 1 zhijia zhijia 5242880 2013-03-06 19:35 ib_logfile1
drwx------ 2 zhijia zhijia 4096 2013-01-24 15:48 mysql
-rwxrwxrwx 1 zhijia zhijia 6 2013-01-24 15:48 mysql_upgrade_info
drwx------ 2 zhijia zhijia 4096 2013-01-24 15:54 phpmyadmin
关于磁盘已满:
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 9833300 7694164 1639632 83% /
none 379568 296 379272 1% /dev
none 383792 400 383392 1% /dev/shm
none 383792 84 383708 1% /var/run
none 383792 0 383792 0% /var/lock
none 383792 0 383792 0% /lib/init/rw
none 9833300 7694164 1639632 83% /var/lib/ureadahead/debugfs
/dev/sdb1 2930263036 1899200 2928363836 1% /media/external_drive
关于ps -ef | grep mysql
zhijia 7329 1756 0 01:00 pts/0 00:00:00 grep --color=auto mysql
关于'sudo mysqld_safe --user = mysql`
130309 01:03:47 mysqld_safe Logging to syslog.
130309 01:03:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130309 01:03:47 mysqld_safe mysqld from pid file /var/lib/mysql/ubuntu.pid ended
关于error.log
,以下错误会重复多次。
^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
130309 0:00:13 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130309 0:00:13 InnoDB: Initializing buffer pool, size = 8.0M
130309 0:00:13 InnoDB: Completed initialization of buffer pool
130309 0:00:13 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
130309 0:00:43 [Note] Plugin 'FEDERATED' is disabled.
....
答案 0 :(得分:1)
这可能是由于许多不同的原因造成的。你的MySQL服务器实际上无法运行,你可能没有磁盘空间,这可能是一个权限问题(我很可能认为)。查看此主题以获取一系列可能的修复:http://ubuntuforums.org/showthread.php?t=804021。
答案 1 :(得分:0)
检查您的mysql
服务器是否已在运行
ps -ef | grep mysql
如果是,请使用以下命令。如果没有跳到下一步。
mysqladmin [-u ... -p...] shutdown
其中,-u
指定用户名,-p
指定用户的密码。
使用默认用户名/ root用户(对于mysql)以安全模式启动mysql,以重新创建/恢复mysql.sock
文件。
mysqld_safe --user=mysql &
另外,为rwx
及其孩子的用户mysql
提供/var/lib/mysql
权限。
通常情况下,mysql.sock
位于/var/lib/mysql/mysql.sock
,而不是{{1}}。 :(
答案 2 :(得分:0)
好像你的磁盘已满。试试cleaning up,请使用以下代码:
sudo apt-get autoremove