Ubuntu中MySQL的安装与常见错误

Ubuntu中MySQL的安装与常见错误

2017.07.17 10:50:07字数953阅读293

Ubuntu安装MySQL

  • sudo apt-get install mysql-server
  • sudo apt-get install mysql-client
  • sudo apt-get install libmysqlclient-dev

此时安装的是所配的源文件中的最新版的MySQL,如果不想安装这个版本的话,需要搜索软件仓库中的MySQL版本

  • sudo apt-cache search mysql-server
  • sudo apt-cache search mysql-client

然后安装选中的版本即可,安装mysql-server的过程中会让设置root账户的密码

 
设置root密码

输入两遍密码后等待自动安装即可,安装完成后在/etc/init.d下面会发现一个mysql的服务, 通过service mysql start即可开启(安装完成后默认开启),也可以通过命令service mysql status查看mysql服务的状态。

通过命令mysql -u root -p可以登录mysql数据库,其中-u表示表示用户名,-p表示密码,命令输入之后提示输入密码。

 
输入密码

 

输入正确密码后即可进入数据库(注:输入密码时不可见)

 

 
进入数据库

此时,通过show databases;就可以查看当前的数据库了

 
image.png

 

Ubuntu中MySQL的常见错误

1. ERROR 2003 (HY000): Can't connect to MySQL server on '10.10..' (10061)

 
命令行报错
 
Navicat报错

需要注释掉bind-address = 127.0.0.1
网上都说是修改/etc/mysql/my.cnf中,但是找了很久没有找到,后来发现其实是在/etc/mysql/mysql.conf.d/mysql.cnf中。

2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

 
2002错误

这个问题的原因是mysql的服务没有开启,输入命令service mysql start,然后输入用户密码即可。

3. ERROR 1130 (HY000): Host '10.10..*' is not allowed to connect to this MySQL server

 
1130错误

错误原因:可能是因为系统数据库mysql中user表中的host是localhost的原因,于是,我尝试把这个值改为自己服务器的ip,果然就好用了,不过用 mysql -u root -p命令就连不上数据库了,需要用mysql -h 服务器ip -u root -p因为默认的连接mysql数据库user表中host的值,而这个命令的默认host是localhost,就连不上了。

  1. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -p进入数据库。
mysql>use mysql
mysql>update user set host = '%' where user = 'root';
  1. 使用终端连接到mysqlmysql -u root -p,然后运行下面的sql
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    这句话的意思是添加一个用户username并且允许在任何ip上通过password登录数据库。
    其中username为数据库的用户名,password是数据库root的密码,%是一个通配符,表示所有的IP均可登录,如果要指定登录IP的话将%修改为指定的IP即可。

4. ERROR 1045 (28000): Access denied for user 'root'@'10.10.8.78' (using password: YES)

 
1045错误

这个错误时连接用户的密码不正确,输入正确密码连接即可。
附:修改密码的办法:

  1. 用root权限查看/etc/mysql/debian.cnf文件,普通用户没有查看的权限
    sudo cat /etc/mysql/debian.cnf
  2. 使用debian.cnf文件中[client]下面的user和password进入mysql
  3. 在数据库中运行下面的sql
    update mysql.user set authentication_string=password('newPassword') where user='root'
    注:
    1. newPassword为修改的新密码。
    2. authentication_string为新版mysql数据库的字段,老版本的字段为password
  4. 运行下面的sql然后重启mysql服务service mysql restart
mysql> flush privileges;
mysql> \q
  1. 重新连接数据库,这个时候应该就已经完美的解决问题了。

5. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 
1820错误
mysql> SET PASSWORD = PASSWORD('NewPassword');
mysql> flush privileges;
mysql> \q

posted on 2019-08-29 20:15  guanxi0808  阅读(589)  评论(0)    收藏  举报

导航