- 安装: apt-get install mysql-server
默认安装的时候没有输入用户名和密码,默认用户名为root,密码为root用户的密码(和系统一致)
如果尝试在/etc/mysql/mysql.conf.d/mysqld.cnf 中的mysqld区域增加skip-grant-tables字段内容,则在登陆mysql时,随意输入任何密码都能登陆(用于特殊操作),如下图示意
- 尝试登陆验证
从本机登陆mysql:sudo mysql -uroot –p
目前还没理解为什么一定要sudo才能登陆,否则会出现如下错误: [此问题已经确认,请参照小细节3中内容]
- 设置远程登陆权限
使用Mysql表: use mysql;
设置允许所有主机连接到Mysql,执行命令:
grant all privileges on *.* to root@"%" identified by "root的密码" with grant option;
flush privileges;
小细节:
- 查看使用端口号:
进入Mysql控制台后,输入show variables like 'port';
- 查看Linux防火墙运行情况
Sodu ufw status , inactive是关闭状态
- 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实际上的密码是空的。
- 如何查看mysql是否允许远程访问
如下图中,root具有%和localhost的访问权限
- 有时候出现这种错误的原因,是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 (#为注释)