自两个小时以来谷歌search,我需要你的帮助。 我在Debian虚拟机上,并克隆它。 唯一的变化是它有新的IP地址。
Mysql不再启动:
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
没有一个叫做mysql的进程。 / var / log中的所有mysql日志文件都是空的。
这里是my.cnf文件:
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/english skip-external-locking bind-address = 127.0.0.1 key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 myisam-recover = BACKUP query_cache_limit = 1M query_cache_size = 16M general_log_file = /var/log/mysql/mysql.log log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] [isamchk] key_buffer = 16M [mysqld_safe] syslog
这是ifconfig的结果:
eth0 Link encap:Ethernet HWaddr 00:0c:29:12:98:9a inet adr:192.168.1.138 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:754 errors:0 dropped:0 overruns:0 frame:0 TX packets:106 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:101177 (98.8 KiB) TX bytes:17719 (17.3 KiB) lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
根据要求,这里的结果是:sudo -u mysql mysqld,这里是结果:
root@debian:/home/nicolas/Bureau# sudo -u mysql mysqld 121004 14:26:57 [Note] Plugin 'FEDERATED' is disabled. mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) 121004 14:26:57 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 121004 14:26:57 InnoDB: Initializing buffer pool, size = 8.0M 121004 14:26:57 InnoDB: Completed initialization of buffer pool 121004 14:26:57 InnoDB: Started; log sequence number 0 70822697 121004 14:26:57 [Note] Recovering after a crash using /var/log/mysql/mysql-bin 121004 14:26:57 [Note] Starting crash recovery... 121004 14:26:57 [Note] Crash recovery finished. 121004 14:26:57 [ERROR] mysqld: Can't find file: './mysql/host.frm' (errno: 13) 121004 14:26:57 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
可能在/var/lib/mysql上的权限是错误的,或者DB结构没有被初始化。 尝试手动运行mysql:
#sudo -u mysql mysqld
你将在控制台上得到所有守护进程的输出。
所以这是13的错误
$ perror 13操作系统错误代码13:权限被拒绝
所以我想让你尝试以下
首先确保权限是好的
chown -R mysql: /var/lib/mysql
然后尝试启动mysql。 如果它不起作用,而且您不关心您的任何数据,请执行以下操作
rm -rf /var/lib/mysql/* mysql_install_db chown -R mysql: /var/lib/mysql
然后再次启动MySQL
因为我不能,所以我重新安装了一个新的VM谢谢你的帮助,这是好主意
我有同样的问题。
/ tmp目录不是写入的,所以MYSQL不能写一些需要的文件。
只要这样做:
chmod 777 /tmp
并重新启动mysql
/etc/init.d/mysql start