当前位置: 移动技术网 > IT编程>数据库>Mysql > Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can't connect to MySql server及1045错误)

Ubuntu安装MySQL及使用Xshell连接MySQL出现的问题(2003-Can't connect to MySql server及1045错误)

2018年12月21日  | 移动技术网IT编程  | 我要评论
不管在什么地方,什么时候,学习是快速提升自己的能力的一种体现!!!!!!!!!!! 以下所有的命令都是在root用户下操作(如果还没有设置root密码)如下: 安装好Ubuntu系统之后,打开终端先设置root密码(如果已设置自行跳过此步骤)执行 sudo passwd 这是会提示你输入计算机登录密 ...

不管在什么地方,什么时候,学习是快速提升自己的能力的一种体现!!!!!!!!!!!

 

以下所有的命令都是在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

再次测试连接,成功

完!

如果此文章有什么不对的地方请路过的大神指出,以免误人子弟


尊重原创,如要转载请注明出处

 

 

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网