Mysql 执行指令desc 表名的时候报错

登陆MySQL,建库、建表都没有问题。例如,create table student;建立了学生表。
可是在 desc student; 查看学生表结构的时候,报错了,如下:
ERROR 1 (HY000): Can't create/write to file '/var/lib/mysql/tmp/#sql_3630_0.MYI' (Errcode: 13)

上网查了一下,遇到此问题的人不少。看来都有这个问题。
注意,MySQL默认的数据库存放的位置在:/var/lib/mysql 下。

解决方案如下:
1、mkdir /var/lib/mysql/tmp
2、chown mysql:mysql /var/lib/mysql/tmp     
    (查一下chown命令,mysql:mysql表示:前一个表示mysql用户,后一个mysql表示mysql用户组)
Mysql 执行指令desc 表名的时候报错_第1张图片
3、修改/etc/my.cnf 配置文件,在[mysql]段增加:tmpdir = /var/lib/mysql/tmp
     增加后,大致如下:

[mysqld]
port            = 3306
socket          = /var/run/mysql/mysql.sock
# Change following line if you want to store your database elsewhere
datadir = /var/lib/mysql
tmpdir = /var/lib/mysql/tmp
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

4、重启mysql服务。

-----------------------------------------------------------------------------------
当Mysql安装在Windows下出现同样问题的解决方案:
1、先在Mysql的安装根目录下创建temp文件夹
Mysql 执行指令desc 表名的时候报错_第2张图片
2、在my.ini中如下配置
Mysql 执行指令desc 表名的时候报错_第3张图片
3、重启Mysql

你可能感兴趣的:(数据库)