在cPanel上,当我以root身份login并input“mysql”而没有主机名和密码时,它使我可以直接访问mysql root用户。
我想这样做的一个非cpanel服务器,其中的Linux root用户获得密码lesslogin到MySQL的根用户,就像它在cPanel上一样。
这可能吗 ?
最简单的方法是使用〜/ .my.cnf文件的客户端部分,并在那里添加凭据。
[client] user=root password=somepassword ...
使这个文件只能由root读取也是一个好主意。
从MySQL 5.6.6开始,您可以使用mysql_config_editor创build一个encryption的文件,以便自动login:
mysql_config_editor set --login-path=client --host=localhost --user=root --password
然后在提示时input密码。
注意:如果您的密码中有“#”,可能还有其他字符,请在input密码时使用单引号。
对于MySQL 5.7+,如果你设置了初始设置的空密码,mysql会自动使用auth_socket
作为策略。 在不改变策略的情况下尝试更新密码将没有结果。 如果您的用户是root
用户,您可以随时login而无需使用密码。
解决scheme执行以下命令,修改authentication策略并设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY
参考: https : //www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
创build一个只包含mysql root密码的文件,只有root可以读取。
# ls -l /root/.mysqlpw -rw------- 1 root root 7 2013-08-19 13:24 /root/.mysqlpw
您可以使用导入数据库
# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase < databasedump.sql
或者连接到你的数据库并发出mysql命令
# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20460 Server version: 5.1.63-0ubuntu0.10.04.1 (Ubuntu) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | yourdatabase | +--------------------+ 3 rows in set (0.00 sec) mysql> show tables; ...