今天下午又没啥事干,于是又拿起三思那本mysql来研究,其中他在创表的那一章节里使用了以下语句来创建表:
(system@localhost) [jssdb]> create table jssdb_mc.users(
-> username varchar(10),
-> sex tinyint,
-> birth date,
-> address varchar(50),
-> phoneno varchar(15));
ERROR 1005 (HY000): Can't create table 'users' (errno: 13)
我按书上的例子在环境中操作了一遍,发现创建表失败,但按道理来说应该是成功的,后来经过在网上查询,原来问题是这样的:
由于jssdb_mc库mysql用户没有权限操作,所以就会出现这个问题,经过查询,发现jssdb_mc确实只有root才拥权限操作:
[root@localhost data]# ls -l
total 2883612
-rw-rw----. 1 mysql mysql 56 Nov 9 09:15 auto.cnf
-rw-rw----. 1 mysql mysql 2147483648 Nov 19 17:40 ibdatal
-rw-rw----. 1 mysql mysql 268435456 Nov 19 17:40 ib_logfile0
-rw-rw----. 1 mysql mysql 268435456 Nov 6 16:15 ib_logfile1
-rw-rw----. 1 mysql mysql 268435456 Nov 6 16:15 ib_logfile2
drwx------. 2 mysql mysql 4096 Nov 19 17:40 jssdb
drwxr-xr-x. 2 root root 4096 Nov 19 16:43 jssdb_mc
drwx------. 2 mysql mysql 4096 Nov 6 16:15 mysql
drwx------. 2 mysql mysql 4096 Nov 6 16:15 performance_schema
drwx------. 2 mysql mysql 4096 Nov 6 16:15 test
于是使用chown 命令来更改用户权限:
[root@localhost data]# chown -R mysql:mysql jssdb_mc/
[root@localhost data]# ls -l
total 2883612
-rw-rw----. 1 mysql mysql 56 Nov 9 09:15 auto.cnf
-rw-rw----. 1 mysql mysql 2147483648 Nov 19 17:40 ibdatal
-rw-rw----. 1 mysql mysql 268435456 Nov 19 17:40 ib_logfile0
-rw-rw----. 1 mysql mysql 268435456 Nov 6 16:15 ib_logfile1
-rw-rw----. 1 mysql mysql 268435456 Nov 6 16:15 ib_logfile2
drwx------. 2 mysql mysql 4096 Nov 19 17:40 jssdb
drwxr-xr-x. 2 mysql mysql 4096 Nov 19 16:43 jssdb_mc
drwx------. 2 mysql mysql 4096 Nov 6 16:15 mysql
drwx------. 2 mysql mysql 4096 Nov 6 16:15 performance_schema
drwx------. 2 mysql mysql 4096 Nov 6 16:15 test
问题解决,出现这个原因是由于这个jssdb_mc库是手动创建的,而且是用root管理员来创建,所以mysql没有权限执行操作,所以以后各位朋友如有遇到该情况要检查情况。