环境centos6.5,mysql多实例(其实单实例也是同样的原理)
一,问题描述
[root@www ~]# /data/3308/mysql start
Starting MySQL...
[root@www ~]# ps -A|grep mysql
[root@www ~]#
启动mysql数据库,通过查看进程并没有任何结果。
二,问题解决
查看mysql错误日志,错误日志位置通过my.cnf得知
[mysqld_safe]
log-error=/data/3308/mysql3308.err
[root@www 3308]# cat/data/3308/mysql3308.err
发现有这么一行:
180128 10:27:56 [ERROR] /application/mysql-5.5.32/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
180128 10:27:56 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
百度解释是权限的原因。
查看你的mysql数据目录
[root@www data]# ll
总用量 144444
-rw-rw----. 1 mysql mysql 134217728 1月 28 13:50 ibdata1
-rw-rw----. 1 mysql mysql 4194304 1月 28 13:50 ib_logfile0
-rw-rw----. 1 mysql mysql 4194304 1月 28 10:27 ib_logfile1
-rw-rw----. 1 mysql msyql 4194304 1月 28 10:27 ib_logfile2
drwx------. 2 root root 4096 1月 28 10:25 mysql
-rw-rw----. 1 root root 29629 1月 28 10:25 mysql_bin.000001
-rw-rw----. 1 root root 1058974 1月 28 10:25 mysql_bin.000002
-rw-rw----. 1 root root 38 1月 28 10:25 mysql_bin.index
drwx------. 2 root root 4096 1月 28 10:25 performance_schema
drwx------. 2 root root 4096 1月 28 10:25 test
原因就是第七行drwx——. 2 root root 4096 1月 28 10:25 mysql
这里的root root 用户和用户组是root,需要修改为mysql mysql
为了防止以后在出现其他问题,我把上面所有的root都改成了mysql
执行下面这条语句,如果你当前所在目录为data目录,则
方法一:修改数据目录的用户和用户组
[root@www data]# cd ../
[root@www 3308]# chown -R mysql.mysql data
如果你嫌麻烦就这样:
方法二:(本人推荐)
[root@www ~]# cd /application/mysql-5.5.32/scripts/
[root@www scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
–user=mysql
后面的参数–user所指定的用户是你想要运行mysqld进程用户名。这个是可变的,不一定非要是mysql。设置这个用户以后,所有通过mysqld进程创建的文件都会属于这个用户。网上的教程里多用mysql用户是为了在生产环境中更方便管理。
也就是这样。
补充–user=mysql
没有指定–user=mysql 就会出现
[root@www data]# ll
总用量 144444
-rw-rw----. 1 mysql mysql 134217728 1月 28 13:50 ibdata1
-rw-rw----. 1 mysql mysql 4194304 1月 28 13:50 ib_logfile0
-rw-rw----. 1 mysql mysql 4194304 1月 28 10:27 ib_logfile1
-rw-rw----. 1 mysql msyql 4194304 1月 28 10:27 ib_logfile2
drwx------. 2 root root 4096 1月 28 10:25 mysql
-rw-rw----. 1 root root 29629 1月 28 10:25 mysql_bin.000001
-rw-rw----. 1 root root 1058974 1月 28 10:25 mysql_bin.000002
-rw-rw----. 1 root root 38 1月 28 10:25 mysql_bin.index
drwx------. 2 root root 4096 1月 28 10:25 performance_schema
drwx------. 2 root root 4096 1月 28 10:25 test
指定了–user=mysql 就不会出现root
[root@www data]# ll
总用量 144444
-rw-rw----. 1 mysql mysql 134217728 1月 28 13:50 ibdata1
-rw-rw----. 1 mysql mysql 4194304 1月 28 13:50 ib_logfile0
-rw-rw----. 1 mysql mysql 4194304 1月 28 10:27 ib_logfile1
-rw-rw----. 1 mysql msyql 4194304 1月 28 10:27 ib_logfile2
drwx------. 2 mysql mysql 4096 1月 28 10:25 mysql
-rw-rw----. 1 mysql mysql 29629 1月 28 10:25 mysql_bin.000001
-rw-rw----. 1 mysql mysql 1058974 1月 28 10:25 mysql_bin.000002
-rw-rw----. 1 mysql mysql 38 1月 28 10:25 mysql_bin.index
drwx------. 2 mysql mysql 4096 1月 28 10:25 performance_schema
drwx------. 2 mysql mysql 4096 1月 28 10:25 test