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账户的密码
输入两遍密码后等待自动安装即可,安装完成后在/etc/init.d
下面会发现一个mysql的服务, 通过service mysql start
即可开启(安装完成后默认开启),也可以通过命令service mysql status
查看mysql服务的状态。
通过命令mysql -u root -p
可以登录mysql数据库,其中-u
表示表示用户名,-p
表示密码,命令输入之后提示输入密码。
输入正确密码后即可进入数据库(注:输入密码时不可见)
此时,通过show databases;
就可以查看当前的数据库了
Ubuntu中MySQL的常见错误
1. ERROR 2003 (HY000): Can't connect to MySQL server on '10.10..' (10061)
需要注释掉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)
这个问题的原因是mysql的服务没有开启,输入命令service mysql start
,然后输入用户密码即可。
3. ERROR 1130 (HY000): Host '10.10..*' is not allowed to connect to this MySQL server
错误原因:可能是因为系统数据库mysql中user表中的host是localhost的原因,于是,我尝试把这个值改为自己服务器的ip,果然就好用了,不过用 mysql -u root -p命令就连不上数据库了,需要用mysql -h 服务器ip -u root -p因为默认的连接mysql数据库user表中host的值,而这个命令的默认host是localhost,就连不上了。
- 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -p
进入数据库。
mysql>use mysql
mysql>update user set host = '%' where user = 'root';
- 使用终端连接到mysql
mysql -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)
这个错误时连接用户的密码不正确,输入正确密码连接即可。
附:修改密码的办法:
- 用root权限查看/etc/mysql/debian.cnf文件,普通用户没有查看的权限
sudo cat /etc/mysql/debian.cnf
- 使用debian.cnf文件中[client]下面的user和password进入mysql
- 在数据库中运行下面的sql
update mysql.user set authentication_string=password('newPassword') where user='root'
注:- newPassword为修改的新密码。
- authentication_string为新版mysql数据库的字段,老版本的字段为password
- 运行下面的sql然后重启mysql服务
service mysql restart
mysql> flush privileges;
mysql> \q
- 重新连接数据库,这个时候应该就已经完美的解决问题了。
5. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> SET PASSWORD = PASSWORD('NewPassword');
mysql> flush privileges;
mysql> \q