Tom*_*uba 105 mysql linux ubuntu auth-socket
我的当地环境是:
安装MySQL 5.7
sudo apt-get install mysql-common mysql-server
Run Code Online (Sandbox Code Playgroud)当我尝试登录MySQL(通过CLI)时:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
我遇到了一个包含3个步骤的循环问题.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Run Code Online (Sandbox Code Playgroud)
解决方案:重启PC.
这导致了另一个错误:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
Run Code Online (Sandbox Code Playgroud)
可能的问题?"root"用户的密码错误!
解决方案:使用本教程重置root密码.
使用正确的密码和工作套接字,会出现上一个错误.
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Run Code Online (Sandbox Code Playgroud)
在这里,我停下来或以某种方式得到了1).
Tom*_*uba 308
我有一个解决方案!
在步骤2)重置root密码时,还要将auth插件更改为mysql_native_password:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Run Code Online (Sandbox Code Playgroud)
这让我成功登录!
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
Run Code Online (Sandbox Code Playgroud)
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
Run Code Online (Sandbox Code Playgroud)
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
当您看到套接字错误时,社区会提供两种可能的解决方案:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)
(感谢@Cerin)
要么
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)
(感谢@Peter Dvukhrechensky)
mysql -uroot # "-hlocalhost" is default
Run Code Online (Sandbox Code Playgroud)
可能导致"丢失文件"或slt错误.
mysql -uroot -h127.0.0.1
Run Code Online (Sandbox Code Playgroud)
效果更好.
我发现了许多创建mysqld.sock文件,更改访问权限或符号链接的方法.毕竟这不是问题.
my.cnf文件问题也不存在.如果您不确定,这可能会对您有所帮助.
Bab*_*med 32
你可以尝试如下它适合我.
启动服务器:
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
现在,转到sock文件夹:
cd /var/run
Run Code Online (Sandbox Code Playgroud)
备用袜子:
sudo cp -rp ./mysqld ./mysqld.bak
Run Code Online (Sandbox Code Playgroud)
停止服务器:
sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)
恢复袜子:
sudo mv ./mysqld.bak ./mysqld
Run Code Online (Sandbox Code Playgroud)
启动mysqld_safe:
sudo mysqld_safe --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)
init mysql shell:
mysql -u root
Run Code Online (Sandbox Code Playgroud)
更改密码:
因此,首先选择数据库
mysql> use mysql;
Run Code Online (Sandbox Code Playgroud)
现在输入以下两个查询:
mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';
Run Code Online (Sandbox Code Playgroud)
现在,一切都会好的.
mysql> flush privileges;
mysql> quit;
Run Code Online (Sandbox Code Playgroud)
用于检查:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
完成了!
N.B, After login please change the password again from phpmyadmin
现在检查 hostname/phpmyadmin
Username: root
Password: 123456
有关更多详细信息,请查看如何在Ubuntu中重置忘记密码phpmyadmin
小智 8
您可以尝试以下几个步骤:
停止Mysql服务第1
sudo /etc/init.d/mysql stop
以root身份登录,无需密码
sudo mysqld_safe --skip-grant-tables &
登录mysql终端后,您需要执行更多命令:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown
Run Code Online (Sandbox Code Playgroud)
重新启动mysql服务器后如果仍然遇到错误,则必须访问:重置MySQL 5.7 root密码Ubuntu 16.04
mysql默认情况下,该命令使用UNIX套接字连接到MySQL。
如果您使用的是MariaDB,则需要在服务器端加载Unix套接字身份验证插件。
您可以通过编辑如下[mysqld]配置来完成:
[mysqld]
plugin-load-add = auth_socket.so
Run Code Online (Sandbox Code Playgroud)
根据分发情况,配置文件通常位于/etc/mysql/或/usr/local/etc/mysql/
小智 6
对于Ubuntu 18.04和mysql 5.7
步骤1:sudo mkdir / var / run / mysqld;
步骤2:sudo chown mysql / var / run / mysqld
第三步:sudo mysqld_safe --skip-grant-tables&quit(如果被卡住则使用quit)
登录到MySQL没有密码
步骤4:sudo mysql --user = root mysql
步骤5:从mysql.user中选择用户,身份验证字符串,插件,主机;
步骤6:ALTER USER'root'@'localhost'由mysql_native_password标识,由'root'
现在登录
万一有人在犯了同样的错误后登陆这里:
plugin="mysql_native_password"暂时改用了。执行了我的任务。plugin="auth_socket",导致mysql "ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded"mysql_safe绕过身份验证以切换到适当的插件plugin="unix_socket"希望如果他们收到原始海报的错误消息,这可以节省一些时间,但真正的原因是插件名称混乱,实际上并不缺少“auth_socket”插件本身的存在,根据MariaDB 文档:
在 MariaDB 10.4.3 及更高版本中,默认安装了 unix_socket 身份验证插件,默认由 'root'@'localhost' 用户帐户使用。
小智 5
我尝试过并且有效
use mysql; # use mysql table
update user set authentication_string="" where User='root';
flush privileges;
quit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130854 次 |
| 最近记录: |