mariaDB 安装在 Ubuntu 16.04
mariaDB install in Ubuntu 16.04
我在 Ubuntu16.04LTS 中安装了 mariaDB 10.1
我用这个代码。
sudo apt-get install mariadb-server
安装成功,但是当我连接到mariadb时,不需要密码!
我正在尝试这个。但是这些都不行。
- 我使用
mysql_secure_installation
命令并成功完成配置。但它仍然不需要密码。
SET PASSWORD FOR 'root'@'%' = PASSWORD('newpass');
和 flush privilege
- 更新用户设置密码=密码('newpass') where user='root';
我想使用密码。我该怎么办?
我对 "i want use password. what should i do?" 的回答是:
"no, you probably don't!"(取决于您应用的部署 - 请参阅下面的评论)
使用 Ubuntu 15.10 及更高版本的 MariaDB 安装时默认启用 unix_socket 用户身份验证插件:https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
使用 sudo mysql -uroot
全新安装登录并执行:
SELECT User, Password, Host, plugin from mysql.user WHERE user = 'root';
您应该会看到一个用户。这也意味着您无法使用默认安装以 root 身份远程登录(mysql_secure_installation
执行的任务之一)。
+------+----------+-----------+-------------+
| User | Password | Host | plugin |
+------+----------+-----------+-------------+
| root | | localhost | unix_socket |
+------+----------+-----------+-------------+
我建议保持原样并创建一个具有适当权限的非 root 用户供您的应用程序使用。
但是,如果您绝对需要密码验证的根用户,您需要将插件更改为mysql_native_password
。
UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';
FLUSH PRIVILEGES;
现在 quit
然后使用 mysql -uroot -p
登录。
请注意,如果您需要重新启动服务,您需要执行三个命令,而不仅仅是 sudo systemctl restart mysql
。我很确定您可以对 .cnf
文件添加一些内容,以便重新启动将按预期工作,但我无法轻易弄清楚。基本上课程是使用 unix_socket
.
sudo systemctl stop mysql
sudo kill -9 $(pgrep mysql)
sudo systemctl start mysql
我在 Ubuntu16.04LTS 中安装了 mariaDB 10.1
我用这个代码。
sudo apt-get install mariadb-server
安装成功,但是当我连接到mariadb时,不需要密码!
我正在尝试这个。但是这些都不行。
- 我使用
mysql_secure_installation
命令并成功完成配置。但它仍然不需要密码。 SET PASSWORD FOR 'root'@'%' = PASSWORD('newpass');
和flush privilege
- 更新用户设置密码=密码('newpass') where user='root';
我想使用密码。我该怎么办?
我对 "i want use password. what should i do?" 的回答是:
"no, you probably don't!"(取决于您应用的部署 - 请参阅下面的评论)
使用 Ubuntu 15.10 及更高版本的 MariaDB 安装时默认启用 unix_socket 用户身份验证插件:https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/
使用 sudo mysql -uroot
全新安装登录并执行:
SELECT User, Password, Host, plugin from mysql.user WHERE user = 'root';
您应该会看到一个用户。这也意味着您无法使用默认安装以 root 身份远程登录(mysql_secure_installation
执行的任务之一)。
+------+----------+-----------+-------------+
| User | Password | Host | plugin |
+------+----------+-----------+-------------+
| root | | localhost | unix_socket |
+------+----------+-----------+-------------+
我建议保持原样并创建一个具有适当权限的非 root 用户供您的应用程序使用。
但是,如果您绝对需要密码验证的根用户,您需要将插件更改为mysql_native_password
。
UPDATE mysql.user SET plugin = 'mysql_native_password', Password = PASSWORD('secret') WHERE User = 'root';
FLUSH PRIVILEGES;
现在 quit
然后使用 mysql -uroot -p
登录。
请注意,如果您需要重新启动服务,您需要执行三个命令,而不仅仅是 sudo systemctl restart mysql
。我很确定您可以对 .cnf
文件添加一些内容,以便重新启动将按预期工作,但我无法轻易弄清楚。基本上课程是使用 unix_socket
.
sudo systemctl stop mysql
sudo kill -9 $(pgrep mysql)
sudo systemctl start mysql