Ubuntu安装Mysql后默认没有设置密码后的问题和几个细节

  1. 安装: apt-get install mysql-server

默认安装的时候没有输入用户名和密码,默认用户名为root,密码为root用户的密码(和系统一致)

如果尝试在/etc/mysql/mysql.conf.d/mysqld.cnf 中的mysqld区域增加skip-grant-tables字段内容,则在登陆mysql时,随意输入任何密码都能登陆(用于特殊操作),如下图示意

  1. 尝试登陆验证

从本机登陆mysql:sudo mysql -uroot –p

目前还没理解为什么一定要sudo才能登陆,否则会出现如下错误: [此问题已经确认,请参照小细节3中内容]

  1. 设置远程登陆权限

使用Mysql表:  use mysql;

设置允许所有主机连接到Mysql,执行命令:

grant all privileges on *.* to root@"%" identified by "root的密码" with grant option;

flush privileges;

 

小细节:

  1. 查看使用端口号:

进入Mysql控制台后,输入show variables like 'port';

  1. 查看Linux防火墙运行情况

Sodu ufw status , inactive是关闭状态

  1. Mysql登陆的时候一定要带上sudo ,是因为root用户的密码太弱了,如下图中

先user mysql , 进入DB后执行select User,Host ,plugin from users; 看到plugin类型是

执行命令

Update user set plugin=’mysql_native_password’ where User=’root’;

然后flush privileges;

操作好后,mysql实际上的密码是空的。

  1. 如何查看mysql是否允许远程访问

如下图中,root具有%和localhost的访问权限

 

  1. 有时候出现这种错误的原因,是my.cnf文件中只绑定了127.0.0.1,导致即便设置远程登陆,也无法。同时也不能通过-h 指定目标位置来登录,也就是如上图中,即便使用-h 命令指定本机,都无法运行。

My.cnf 可以通过locate my.cnf命令来寻找到可能存在的位置。(但是有时候没软用,实际上可能存在位置有2个,

/etc/mysql/my.cnf

/etc/mysql/mysql.conf.d/mysqld.cnf   【我这里在这里发现】

打开该文件后,注释掉其中的行 bind-address =127.0.0.1 (#为注释)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章