我在 Ubuntu 16.04 上运行 MariaDB 10.0.24。我通过 xenial repo 安装了它apt-get install mariadb-server
。
root 密码似乎无法正常工作。我按照以下步骤设置密码:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html但我得到以下行为:
当我这样做时sudo mysql
,sudo mysql -u root
它会让我进入控制台而不要求输入密码(为什么我不需要密码就可以进入?)
当我这样做时,sudo mysql -u root -p
它会要求我输入密码,但无论我输入什么字符串,它都会让我进入 mysql 控制台。为什么输入错误的密码后它还是让我进入?
当我这样做时,mysql -u root
它会要求我输入密码,但不会接受我按照链接文章中的说明设置的密码。
显然有些地方不对劲。有人知道为什么它根本不要求 root 输入密码,也不接受我的用户的密码吗?
答案1
sudo mysql && sudo mysql -u root
这是多余的命令。不要求输入密码,因为你有一个名为 /root/.my.cnf 的文件,其中包含客户端名称和密码
sudo mysql -u root -p
要求输入密码,因为您在命令中输入了 -p (请参阅man mysql
)
· --password[=password], -p[password]
The password to use when connecting to the server. If you use the short option form (-p), you cannot have a
space between the option and the password. If you omit the password value following the --password or -p option
on the command line, mysql prompts for one.
Specifying a password on the command line should be considered insecure. See Section 6.1.2.1, “End-User
Guidelines for Password Security”. You can use an option file to avoid giving the password on the command line.
特别是针对用户问题
由于 Ubuntu 16.04 使用 Xenial,因此他们控制某些事物的方式有点奇怪,并且使用会影响我们使用的许多系统管理员的插件。
mysql> 使用 mysql;mysql> 更新用户设置插件 = '' 其中用户 = 'root';mysql> 刷新权限;