MySQL8更改端口无效

为了提高安全性,尝试将默认的MySQL端口更改为3306以外的值。
使用/etc/mysql/mysql.conf.d/mysqld.cnf文件并保存后,执行重启命令,却发现配置没有生效。
在新的虚拟机系统中进行相同的配置后,重新启动系统,一切正常。
这引发了对该问题的一系列搜索,最终发现使用Django连接MySQL时需要mysqlclient库。
这个库依赖default-libmysqlclient-dev,安装这个依赖库后,会同步安装mariadb-common,从而覆盖原来的MySQL配置文件,使修改无法生效。
问题的根源是mariadb和mysql的配置文件部分重叠,导致mariadb-common安装后原来的配置文件被覆盖。
解决方案是将MySQL放在所有软件安装的末尾,以避免不必要的文件覆盖。
为了简化流程,直接重装系统,先安装mysqlclient,最后安装MySQL。
更改MySQL配置文件后,问题解决。
第二天我再次尝试,发现问题是由于不小心更改了/etc/alternatives/my.cnf文件引起的。
这表明在系统安装过程中或者在一些自动化配置中,对文件进行了错误的操作或修改,导致端口变更失败。

mysql数据库打不开MySQL启动失败的常见原因

MySQL启动失败最常见的原因有两个:下面就对这些进行分析。
1.系统资源MySQL无法访问其启动所需的资源。
这会导致MySQL无法启动,比如文件、港口等在Linux中,启动mysqld进程的mysqld用户通常没有登录,因为该用户无法登录。
您可以使用如下命令来检查文件访问权限。
sudo-umysqltouch/var/lib/mysql/b后发现问题;修改相关文件或目录的权限或所有者通常可以解决问题。
但有时mysql用户有权访问文件和目录,但访问仍然被拒绝,如以下示例:mysql>systemsudo-umysqltouch/home/mysql/data/amysql>createtablet1(idintprimarykey,nvarchar(10)datadirectoryERROR1030(HY000):Goterror168fromstorageengine测试显示mysql用户可以访问该目录,但是文件创建仍然失败这种情况很多人。
可以看到创建的表不在selinux或apparmor的策略下尽管允许访问。
系统资源被阻塞。
忙:mysqld--no-defaults--console--usermysql2020-11-03T03:36:07.519419Z0[系统][MY-010116][服务器]/usr/sbin/mysqld(mysqld8.0.19)启动ocess211712020-11-03T03:36:07.740347Z1[ERROR][MY-012574][InnoDB]Unabletolock./ibdata1error:11出现此错误的原因是另一个mysqld进程已启动并占用了相应的参数文件。
参数数据设置不正确导致MySQL启动此时,首先要检查MySQL启动时会调用的参数,下面的命令可以查询参数文件的调用顺序。
:$mysqld--verbose--help|grep"defaultoptions"-A1Defaultoptionsarereadfromthefollowingfilesinthegivenorder:/etc/my.cnf/etc/mysql/my.cnf~/.my.cnf通过了解MySQL参数文件的调用顺序,可以检查相应的参数文件并发现错误。
参数文件可读性不太好;您可以使用以下命令。
要显示mysqld程序将调用的参数,命令:$mysqld--print-defaults/usr/sbin/mysqld启动时带有以下参数:...注意,该命令在显示参数后退出,不包括实际运行mysqld。
该命令与my_print_defaultsmysqld完全相同,只不过后者每行显示一个参数。
那么,在调试可疑参数时,我个人喜欢包含的参数和命令如下:1、在mysqld后面添加第一个参数--no-defaults该参数的作用是启动mysqld时不执行任何操作。
这是一个不要阅读的通知。
参数文件;缺点是所有信息都显示在屏幕上,使屏幕变得混乱;不过对于我们调试来说还是非常方便的。
日志;4.然后最后只能一次添加一个可信的参数并启动mysqld慢慢删除错误的参数。
请参阅此示例:mysqld--no-defaults--console--log-error-verbosity=3--usermysql--gtid_mode=on2020-11-03T07:14:20.384223Z0[Note][MY-010949][Server]基于dirsetto/usr/.2020-11-03T07:14:20.384254Z0[系统][MY-010116][服务器]/usr/sbin/mysqld(mysqld8.0.19)startingasprocess226172020-11-03T07:14:20.400221Z0[注意][MY-012366][InnoDB]使用LinuxnativeAIO……2020-11-03T07:14:21.632851Z0[错误][MY-010912][服务器]GTID_MODE=ON需要ENFORCE_GTID_CONSISTENCY=ON。
2020-11-03T07:14:21.634183Z0[错误][MY-010119][服务器]正在取消……2020-11-03T07:14:23.026551Z0[System][MY-010910][Server]/usr/sbin/mysqld:Shutdowncomplete(mysqld8.0.19)MySQLCommunityServer-GPL.root@scutech:~#看这个例子,我们很容易看出我们需要设置仅当同时启用CY时才约束GTID_MODE和ENFORCE_GTID_CONSISTEN。

mysql改端口后出现can'tconnectmysqlserver'localhost'10061错误,

由于默认值为3306,因此您可能更改了其他内容,并且它与您没有注意到的其他内容发生冲突!建议不要像这样更改默认端口。

mysql修改端口后启动失败

更改端口后Mysql无法启动。
检查日志文件/var/log/mysqld.log是否有错误消息:Cantstartserver:BindonTCP/IPport:Permissiondenied解决方案:退出SELINUX并编辑selinux配置文件vi/etc/。
selinux/configSELINUX=disabled然后重新启动服务。
或者使用setenforce0命令暂时关闭selinux而不需要重新启动服务器;