Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can't connect to MySql server及1045错误)
不管在什么地方,什么时候,学习是快速提升自己的能力的一种体现!!!!!!!!!!!
以下所有的命令都是在root用户下操作(如果还没有设置root密码)如下:
安装好ubuntu系统之后,打开终端先设置root密码(如果已设置自行跳过此步骤)执行
sudo passwd
这是会提示你输入计算机登录密码,输入之后会再提示你输入两次将要设置的root密码,输完切换到root用户,执行
su root
提示输入root密码,正确输完即可进入root用户下,执行
apt-get update
此命令是将软件源更新至最新(如果更新失败请查看是否联网失败或在网上寻找源问题)
安装mysql命令
apt install mysql-server (默认安装最新mysql) 要安装指定版本的可以参考 apt install mysql-server-5.6(此命令我没有验证过,大家可以尝试下)
输完命令之后会提示你红框内内容 输入 y 即可
输完之后会弹出一个简单的ui界面让你输入mysql的root密码(注:mysql密码在linux系统不可以使用特殊字符)root密码输完之后就安装好mysql了
登录mysql命令:
mysql -uroot -p
输完命令需要输入刚才你在ui页面的root密码(输密码是没有显示出来的不用担心,正确输完之后回车就行)
如下图:
现在已经完全安装好mysql了,接下来是允许其他电脑连接服务器的mysql(如果你不需要使用其他工具连接mysql请自行忽略以下内容)
授权其他设备连接mysql命令:
mysql>grant all privileges on *.* to 'root'@'这里写允许其他设备所在的ip地址或者直接用 % 代替,“%”代表所有ip地址' identified by '你的root用户密码 ' with grant option;
输完此命令还需要在执行重新授权表命令::
mysql>flush privileges;
如下图:
这时候就可以尝试使用其他机器上的设备连接ubuntu上的mysql(我用的是navicat)(有时候也会成功连接但更多时候下会出现如下情况)
2003-can't connect to mysql server on 'xxx.xxx.xxx.xxx'(10061 "unknown error")
解决方法如下:
编辑mysql的配置文件:
vi /etc/mysql/mysql.conf.d/mysqld.cnf ,找到address=127.0.0.1这一段文本,将它注释掉或则将它改成address =0.0.0.0。这些方法目的是允许其他的主机可以访问服务,而不仅仅是127.0.0.1(localhost)
重新启动mysql命令:/etc/init.d/mysql restart
停止mysql命令:/etc/init.d/mysql stop
查看mysql启动状态命令:/etc/init.d/mysql status
现在我们重新启动mysql再尝试连接mysql
现在我们就成功的连接了ubuntu的mysql了,不过有些伙伴还有可能会遇到另一个问题就是,用navicat连接是提示需要修改密码才能连接:
如下图(我现在没有报出错误,因而在网上找了个相同错误的图片放出来):
解决方案如下:
同样是编辑mysql的配置文件:
vi /etc/mysql/mysql.conf.d/mysqld.cnf ,
在skip-external-locking的下一行添加 skip-grant-tables ,用户登录时跳过密码校验
保存并重启mysql:
/etc/init.d/mysql restart
然后输入 mysql 就可以直接进去mysql的命令操作界面:
此时修改root用户密码:
mysql>use mysql;
mysql>update user
set authentication_string=password(
'新密码')
where user=
'root';
注:简单的密码可能不能成功更新密码,需较复杂的密码
mysql> flush privileges;
mysql>
quit;
注:
现在回去配置文件删除刚才跳过密码验证代码 “skip-grant-tables”:
注:
现在回去配置文件删除刚才跳过密码验证代码 “skip-grant-tables”:
注:
现在回去配置文件删除刚才跳过密码验证代码 “skip-grant-tables”:
重要事情说三遍!!!
现在重启mysql:
/etc/init.d/mysql restart
再次测试连接,成功
完!
如果此文章有什么不对的地方请路过的大神指出,以免误人子弟
尊重原创,如要转载请注明出处
下一篇: Redis和MySQL的区别有哪些?