admin管理员组文章数量:1530517
问题:今天数据库备份迁移登入时报错:
分析:在默认情况下,Mysql安装以后会在/tmp目录下生成一个mysql.sock文件,如该文件丢失则Mysql将不能够正常启动对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。
第一种解决:直接指定地址端口号登入
在mysql的bin目录下执行:
./mysql -h127.0.0.1 -P3307 -uroot -p
说明:-h 地址 -P 端口号 -u 用户名 -p 密码
执行后登入成功。
第二种解决:重新启动Mysql,在support-files目录下执行命令:./mysql.server restart。如果启动不了请尝试第三种。
第三种解决:使用mysqld_safe 启动即可解决(一劳永逸)
1.关闭mysql。如果正常关闭不了,可以kill掉端口号
2.在bin目录下启动Mysql
./mysqld_safe --defaults-file=/etc/myf --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
--defaults-file:指定配置文件的位置,这个选项必须是第一个。这个参数可以不指定,不指定则默认。
--basedir:指定MySQL的安装目录。
--datadir:指定数据目录的路径。
3.登入时报错
解决忘记登入密码(ERROR:1045)问题,总体思路:配置myf使其免密码登录,重启服务,重新设置密码并刷新数据库,将之前的配置去掉重启MySQL。
1.配置myf使其免密码登录,每个人装的位置可能不同,mysql默认位置/etc/myf
执行命令vim /etc/myf
skip_grant_tables:跳过登入权限验证。保存修改。
2.重启服务,在support-files目录下执行命令:./mysql.server restart
3.重新设置密码并刷新数据库:在mysql的bin目录下执行:./mysql -uroot -p,输入密码时直接回车即可进入。进入mysql时依次执行:
① use mysql;
② MySQL5.7.9版本后执行:
update user set authentication_string="新密码" where user="root"
MySQL5.7.9版本前执行:
update user set password=password("新密码") where user="root"
③ flush privileges;
④ quit;
4.将之前的配置去掉,重启MySQL
重启(参照步骤2)。然后使用新密码进行登入。
登入成功。
5.如果此时执行语句出错1820,则说明没有给root赋权限。 如果没有出错则可以忽略此步骤。
这个原因是我指定错了datadir的路径,默认这个路径是在mysql安装目录下data目录,而我之前搭建时,指定到了linux根目录/data/mysql,但是原默认的没有删除,所以指定到了原目录下,但是在原目录里的相关用户都没有赋权限,结果顺道记录一下这个问题。其实用对的datadir重新执行第2步(在bin目录下启动Mysql)就可以了。也不会这么麻烦。
给root用户复权
alter user 'root'@'localhost' identified by 'root' ; flush privileges;
本地正常操作成功。可见因为我指定错了datadir,所以库里只有初始的几张表。
版权声明:本文标题:2022-07-06 mysql报错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘tmpmysq 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1725806601a1044110.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论