另一个cnblogs博客 常用汇总

linux mysql mariadb

非常有必要更新一下以及更正一下错误

MariaDB用的是unix_socket,优点是使用系统本地账号,无须密码, 缺点正如优点所言,不支持网络访问。

mysql8.0的确启用了caching_sha2_password,但是老版本的php和navicat不支持,当时最新版本是不是支持我不是非常清楚,我记得尝试了,但不支持,但是如今查阅资料,也许支持了,或者通过变通的方法可以支持,但是我不知道,总之现在的php最新版本和navicat是支持的,我亲自验证的。

当时搜索资料,将caching_sha2_password换成mysql_native_password的文章在网络上千篇一律流传甚广,我尝试既然mysql启用更好的方式,必然是正确的以及必然被支持的,可惜当时的确找不到还把mysql和mariadb弄错了,惭愧。

顺便说下mariadb服务端不支持caching_sha2_password,但mariadb客户端兼容caching_sha2_password,可以用来连接mysql。

===============================================

在debian安装mysql

准确的说是MariaDB,因为替换了,安装命令是apt install mariadb-server

安装后php(以及navicat)不能访问,原因mysql8.0启用了新的密码验证方式,但是这些客户端都不支持,所以我们只好换成旧的了。

将caching_sha2_password换成mysql_native_password

UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root';

默认安装的数据库密码是空的,直接用mysql 命令就可以登陆,然后执行上述命令。

用navicat+ssh访问的话,ip填localhost或127.0.0.1,而不是服务器ip

如果想直接远程登陆的话,应该修改Host

1
UPDATE mysql.user SET Host='%' WHERE User='root';

如果想修改密码的话

1
UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root';

修改完记得再执行一下

1
FLUSH PRIVILEGES;

 上述命令可以立即生效,也可以重启mysql使之生效。

将host改为%并不意味着你一定可以远程登陆了,可能还有一个地方。

修改/etc/mysql/mariadb.conf.d/50-server.cnf 注释掉绑定ip为127.0.0.1

posted on   webkb  阅读(121)  评论(0编辑  收藏  举报

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示