现象
mysql 想删掉数据库,执行 drop database hive;
失败了,异常信息如下:
Error Dropping Database (Can't rmdir '.hive\', errno: 17)
解决办法
mysql 实际的数据是存储在磁盘上的,一个库对应磁盘上的某个目录,删了文件目录,数据库自然就不见了。
真实数据在磁盘上的位置可以在my.conf
中找到:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql # (真正的数据就存在这个目录下)
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
lower_case_table_names = 1
操作
sudo cd /var/lib/mysql
sudo rm -rf ./hive
删除数据目录后,再次登录mysql 会发现 hive 库消失了。