专栏首页仙士可博客关于deepin mysql 配置遇到的坑

关于deepin mysql 配置遇到的坑

由于我是deepin系统,使用apt-get 成功安装mysql并且启动

一:查找配置文件

众所周知,mysql的配置文件名为my.cnf,首先我通过locate命令得到了所有my.cnf文件路径:

root@tioncico-PC:/home/tioncico# locate my.cnf
/etc/alternatives/my.cnf
/etc/mysql/my.cnf
/etc/mysql/my.cnf.fallback
/home/tioncico/PhpstormProjects/test/my.cnf
/root/.local/share/Trash/files/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/include/default_my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/federated/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/group_replication/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_big/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_binlog/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_ddl/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_memcache/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_rpl/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndb_team/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/ndbcluster/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/rpl/extension/bhs/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/rpl/my.cnf
/root/.local/share/Trash/files/mysql/mysql-test/suite/rpl_ndb/my.cnf
/root/.local/share/Trash/info/my.cnf.trashinfo
/var/lib/dpkg/alternatives/my.cnf

其实在这个时候,我已经知道了mysql默认加载的应该是/etc/mysql/my.cnf

但是不够严谨啊?mysql默认这个,为什么是默认这个,有文档吗?

在后来,我知道了新的命令,用于查看mysql的默认加载路径:

root@tioncico-PC:/home/tioncico# mysql --help |grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 
root@tioncico-PC:/home/tioncico# mysqld --verbose --help |grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 
root@tioncico-PC:/home/tioncico#

上面这2个命令都可以获得加载的路径

按照网上所说,默认配置文件根据这3个不同的路径优先级进行选择,现在我的磁盘中没有/etc/my.cnf,在用户下也没有,所以自然是加载/etc/mysql/my.cnf啦~

二:自定义路径

那我继续,新增一个/etc/my.cnf 的文件

[mysql]
port                           = 3307
socket                         = /media/tioncico/f/tmp/mysql.sock
[client]
socket                         = /media/tioncico/f/tmp/mysql.sock

然后重启mysql,去查看3307端口是否占用

root@tioncico-PC:/home/tioncico# service mysql restart
root@tioncico-PC:/home/tioncico# service mysql restart
root@tioncico-PC:/home/tioncico# lsof -i :3307
root@tioncico-PC:/home/tioncico#

哎?没调用成功?没有加载/etc/my.cnf???

这个咋整啊,咋回事啊,懵逼了啊

后来我理了理思路,service的命令,本质就是调用/etc/init.d/目录的命令而已

我找到了/etc/init.d/mysql,打开看了看

emmmmm,看不懂。但是我感觉不简单,所以重新找了其他系统的/etc/init.d/mysqld来进行查看

发现了deepin安装的mysql脚本和centos使用宝塔安装的脚本代码不一致

deepin的完全缺少这一行

所以,自定义配置项的引入,需要根据init.d的脚本来进行逻辑查看,才清楚到底是加载的什么配置文件

三:sock文件找不到的报错

root@tioncico-PC:/home/tioncico# mysql -uroot -p

Enter password: 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

该报错的意思是没找到/tmp/mysql.sock,进,目录查看确实是没有的 但是后来我发现,是因为之前我新增了一个/etc/my.cnf  里面配置就是这个

然后问题来了:

由于我的mysql服务器加载的配置是

/etc/mysql/my.cnf

而 mysql -uroot -p 默认加载的配置文件成为了/etc/my.cnf

导致了这个命令以为/etc/my.cnf是真正的配置,去读取里面的sock配置,导致读取不出

只需要删除该配置文件即可

本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux debian系统使用mysql教程

    mysql的配置文件名为my.cnf  但是当我们安装mysql时,可能会出现多个my.cnf文件(我们可以根据不同的情况,去引入不同的配置启动mysql)

    仙士可
  • 关于mysql binlog二进制

    在mysql中,当发生数据变更时,都会将变更数据的语句,通过二进制形式,存储到binlog日志文件中.

    仙士可
  • 关于mysql集群主从服务器搭建

    在高并发流量下,数据库往往是服务端的瓶颈,由于数据库数据需要确保落地,同时保证数据同步,数据即时性,有效性的问题,导致数据库不能像平常后端程序一样负载均衡.  ...

    仙士可
  • 数据分析sql技能之数据库导入

    作为数据分析师很多时候由于各种原因无法直接连接到数据库上进行sql操作。 尤其是需要大量数据计算的时候,虽然只是查询操作,但是不小心会产生非常大的CPU消耗,...

    有福
  • Centos 7下安装mysql

    ·mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz

    挑战者
  • Docker 入门到实战教程(八)安装Mysql

    在上一篇Redis的安装教程中,大家都有疑问,为什么我要采取挂载的方式以及我怎么知道配置文件在哪?

    小东啊
  • linux debian系统使用mysql教程

    mysql的配置文件名为my.cnf  但是当我们安装mysql时,可能会出现多个my.cnf文件(我们可以根据不同的情况,去引入不同的配置启动mysql)

    仙士可
  • 一步到位Linux中安装配置MySQL及补坑

      Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本...

    欢醉
  • 技术分享 | 使用备份恢复实例时存在的坑

    爱可生服务团队成员,负责处理客户在MySQL日常运维中遇到的问题;擅长处理备份相关的问题,对数据库相关技术有浓厚的兴趣,喜欢钻研各种问题。

    爱可生开源社区
  • Ubuntu安装配置MySQL

    注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多,修改命令如下:sudo sed -i "s/cn/us/g" s...

    阳光岛主

扫码关注云+社区

领取腾讯云代金券