首页 > 技术文章 > MySQL数据库里表名都是重复的,一个是大写的表名,一个是小写的表名

kkvt 2020-03-05 15:26 原文

感谢三位博主的文章。

1.复制数据库时,出现表重复出现2次,一个表名大写,一个表名小写:

https://blog.csdn.net/huanglianggu/article/details/49330817

解决办法:

在配置文件my.cnf ,[mysqld]下面加上:

lower_case_table_names=1

如图:

 2.my.cnf在哪里?

https://blog.csdn.net/wangpengfei163/article/details/82977777

  1.  
    my.cnf文件的查找方式:
  2.  
     
  3.  
    my.cnf是MySQL启动时加载的配置文件,一般会放在mysql的安装目录中,用户也可以放在其他目录加载。安装mysql后,系统中会有多个my.cnf文件,有些是用于测试的。使用locate my.cnf命令可以列出所有的my.cnf文件
  4.  
     
  5.  
    当我们需要修改配置文件时,需要找到mysql启动时是加载了哪个my.cnf文件。
  6.  
     
  7.  
     
  8.  
    1.查看是否使用了指定目录的my.cnf
  9.  
    启动mysql后,我们查看mysql的进程,看看是否有设置使用指定目录的my.cnf文件,如果有则表示mysql启动时是加载了这个配置文件。
  10.  
     
  11.  
    命令
  12.  
    ps aux|grep mysql|grep 'my.cnf'
  13.  
    输出
  14.  
    fdipzone 25174 0.0 0.0 3087244 600 ?? S 4:12下午 0:01.14 /usr/local/Cellar/mysql/5.6.24/bin/mysqld --defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --basedir=/usr/local/Cellar/mysql/5.6.24 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.24/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/TerrydeMacBook-Air.local.err --pid-file=/usr/local/var/mysql/TerrydeMacBook-Air.local.pid
  15.  
    fdipzone 25064 0.0 0.0 2452824 4 ?? S 4:12下午 0:00.03 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --defaults-file=/usr/local/Cellar/mysql/5.6.24/my.cnf --bind-address=127.0.0.1 --datadir=/usr/local/var/mysql
  16.  
    可以看到/usr/local/Cellar/mysql/5.6.24/my.cnf就是mysql启动加载的配置文件。
  17.  
     
  18.  
    如果上面的命令没有输出,表示没有设置使用指定目录的my.cnf。
  19.  
     
  20.  
    2.查看mysql默认读取my.cnf的目录
  21.  
    如果没有设置使用指定目录的my.cnf,mysql启动时会读取安装目录根目录及默认目录下的my.cnf文件。
  22.  
     
  23.  
    查看mysql启动时读取配置文件的默认目录
  24.  
     
  25.  
    命令
  26.  
    mysql --help|grep 'my.cnf'
  27.  
    输出 order of preference, my.cnf, $MYSQL_TCP_PORT,
  28.  
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
  29.  
    /etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。
  30.  
     
  31.  
     
  32.  
    3.启动时没有使用配置文件
  33.  
    如果没有设置使用指定目录my.cnf文件及默认读取目录没有my.cnf文件,表示mysql启动时并没有加载配置文件,而是使用默认配置。
  34.  
     
  35.  
    需要修改配置,可以在mysql默认读取的目录中,创建一个my.cnf文件(例如:/etc/my.cnf),把需要修改的配置内容写入,重启mysql后即可生效。

 3.数据库里删除某个数据数删不了了,报错Error dropping database(cant rmdir errno:39)

https://blog.csdn.net/gglong/article/details/51542865

当执行DROP DATABASE语句,系统会查找数据库中存在的数据表,如果目录中有数据库中不存在的表,删除失败。需要手动

 删除目录中所有的文件,重新运行DROP DATABASE

我是直接用moba连接服务器,找到文件路径,手动删的。

 

service mysqld restart

 

推荐阅读