Ubuntu 18.04 启动 mysql 没有 root 权限
Ubuntu 18.04 start mysql without root privilege
我刚刚安装了 ubuntu 18.04 并在上面安装了 LAMP,但是我在没有 root 权限的情况下使用 mysql 时遇到了问题。当我写:
mysql -u root -p
并输入我配置的密码,它抛出访问被拒绝。除非我写
sudo mysql -u root -p
然后输入我可以连接的密码。但我不想要 sudo,因为它阻止 workbench 连接到 mysql,这同样适用于 phpmyadmin。关于如何解决这个问题的任何提示?
我昨天也遇到了这个问题。要解决此问题,请执行以下步骤:
- 连接到 MySQL:
sudo mysql -u root
- 检查数据库中的 mysql 用户:
SELECT User,Host FROM mysql.user;
- 删除 root 用户帐户:
DROP USER 'root'@'localhost';
- 重新创建根用户:
CREATE USER 'root'@'%' IDENTIFIED BY ''
- 授予 root 用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- 为 root 用户设置密码:
ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword';
就是这样!现在您应该可以连接 MySQL.
应该只有“-u root”用户需要sudo。无论如何,最好不要使用 root 进行大多数访问,因此只需使用 sudo 以 root 身份登录并创建一个新用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
那么你应该可以在没有 sudo 的情况下访问 "mysql -u newuser"。
我在 workbench 中使用 Ubuntu 18.04 和 mysql 5.7 版,但通过以下 10 个步骤解决了这个问题
- 连接到 MySQL:
sudo mysql -u root
- 检查数据库中的 mysql 个用户:
SELECT User,Host FROM mysql.user;
- 删除 root 用户帐户:
DROP USER 'root'@'localhost';
SET GLOBAL validate_password_length = 5;
SET GLOBAL validate_password_number_count = 0;
SET GLOBAL validate_password_mixed_case_count = 0;
SET GLOBAL validate_password_special_char_count = 0;
SET GLOBAL validate_password_policy = LOW;
- 重新创建根用户:
CREATE USER 'root'@'%' IDENTIFIED BY 'admin'
- 授予 root 用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
enter image description here 1.更新mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
2.FLUSH 特权;
如果在没有 sudo 的情况下无法与任何 mysql 用户连接到 mysql,请尝试:
sudo chmod -R 755 /var/lib/mysql/
或
sudo chmod -R 755 /var/run/mysql/
然后重启服务
sudo services mysql start
或
sudo /etc/init.d/mysql start
我刚刚安装了 ubuntu 18.04 并在上面安装了 LAMP,但是我在没有 root 权限的情况下使用 mysql 时遇到了问题。当我写:
mysql -u root -p
并输入我配置的密码,它抛出访问被拒绝。除非我写
sudo mysql -u root -p
然后输入我可以连接的密码。但我不想要 sudo,因为它阻止 workbench 连接到 mysql,这同样适用于 phpmyadmin。关于如何解决这个问题的任何提示?
我昨天也遇到了这个问题。要解决此问题,请执行以下步骤:
- 连接到 MySQL:
sudo mysql -u root
- 检查数据库中的 mysql 用户:
SELECT User,Host FROM mysql.user;
- 删除 root 用户帐户:
DROP USER 'root'@'localhost';
- 重新创建根用户:
CREATE USER 'root'@'%' IDENTIFIED BY ''
- 授予 root 用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- 为 root 用户设置密码:
ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword';
就是这样!现在您应该可以连接 MySQL.
应该只有“-u root”用户需要sudo。无论如何,最好不要使用 root 进行大多数访问,因此只需使用 sudo 以 root 身份登录并创建一个新用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
那么你应该可以在没有 sudo 的情况下访问 "mysql -u newuser"。
我在 workbench 中使用 Ubuntu 18.04 和 mysql 5.7 版,但通过以下 10 个步骤解决了这个问题
- 连接到 MySQL:
sudo mysql -u root
- 检查数据库中的 mysql 个用户:
SELECT User,Host FROM mysql.user;
- 删除 root 用户帐户:
DROP USER 'root'@'localhost';
SET GLOBAL validate_password_length = 5;
SET GLOBAL validate_password_number_count = 0;
SET GLOBAL validate_password_mixed_case_count = 0;
SET GLOBAL validate_password_special_char_count = 0;
SET GLOBAL validate_password_policy = LOW;
- 重新创建根用户:
CREATE USER 'root'@'%' IDENTIFIED BY 'admin'
- 授予 root 用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
enter image description here 1.更新mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
2.FLUSH 特权;
如果在没有 sudo 的情况下无法与任何 mysql 用户连接到 mysql,请尝试:
sudo chmod -R 755 /var/lib/mysql/
或
sudo chmod -R 755 /var/run/mysql/
然后重启服务
sudo services mysql start
或
sudo /etc/init.d/mysql start