現在让我很迷茫啊,mysqladmin 改的密码貌似也没用。
|
evilnullJul 21, 2017
1
MariaDB root 账户默认使用了 UNIX_SOCKET 插件,只允许 root 用户连接,无需密码。
可以使用 root 用户连接后创建新用户或者执行: update mysql.user set plugin = ''where User='root'; flush privileges; or update mysql.user set plugin = 'mysql_native_password' where User='root'; flush privileges; |
|
jarlyynJul 21, 2017
2
楼上……………………
大部分发行版安装好 mysql 不都是跑一遍 mysql_secure_installation 么? |
|
evilnullJul 21, 2017
3
@jarlyyn 对于 mysql 来说是的,但是对于默认启动了 UNIX_SOCKET 插件的 MariaDB,即使执行了
mysql_secure_installation 仍然需要使用 root 用户才能连接 MariaDB root 账户,而且无需密码。 |
|
jarlyynJul 21, 2017
5
第三张图发错,是非 root 用户登录 root 帐号的
|
|
jarlyynJul 21, 2017
6
另外,再来张指定 socket 文件链接的 3 种登录状况的图
|
|
hcymk2Jul 21, 2017
7
|
|
evilnullJul 21, 2017
9
@hcymk2 我确实是按照 Debian9 中的 MariaDB 说的,刚安装了 Debian8 stable 测试,从源中安装 MariaDB 是会提示输入 root 密码的,而且确实没有使用 UNIX_SOCKET 插件,而楼主说没有提示输入 root 的密码。
在文档 https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ 里提到 “ The UNIX_SOCKET plugin is installed by default in new installs of Ubuntu 15.10 and later, and Debian testing.” 或许楼主是 Debian testing 吧。 |
|
10
所以我推薦用 Percona Server
|
|
evilnullJul 21, 2017
11
@hcymk2 上一条 at 错了,抱歉
@jarlyyn 我确实是按照 Debian9 中的 MariaDB 说的,刚安装了 Debian8 stable 测试,从源中安装 MariaDB 是会提示输入 root 密码的,而且确实没有使用 UNIX_SOCKET 插件,而楼主说没有提示输入 root 的密码。 在文档 https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin 里提到 “ The UNIX_SOCKET plugin is installed by default in new installs of Ubuntu 15.10 and later, and Debian testing.” 或许楼主是 Debian testing 吧。 |
|
12
安装完 MariaDB 之后,运行 mysql_secure_installation,其中有个选项就可以修改 root 密码了 。
但是此时,用 phpmyadmin 或者 adminer 访问的時候,还是会提示 Access denied for user 'root'@'localhost' 这个时候 sudo mysql -u root use mysql; update user set plugin='' where User='root'; flush privileges; exit; 这样就 OK 了 |