一、版本信息:
study@ubuntu:/etc/mysql/mysql.conf.d$ uname -a
Linux ubuntu 4.13.0-21-generic #24-Ubuntu SMP Mon Dec 18 17:29:16 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
mysql> SELECT version();
+-------------------------+
| version() |
+-------------------------+
| 5.7.21-0ubuntu0.17.10.1 |
+-------------------------+
1 row in set (0.00 sec)
_________________________________________________________________________________________
二、MySql的安装
sudo apt-get install mysql-server //从互联网的软件仓库中下载安装MySql服务端
sudo apt install mysql-client //安装MySql客户端
sudo apt install libmysqlclient-dev //安装MySql的C语言开发接口
sudo netstat -tap | grep mysql //检查MySql是否已安装成功
安装成功如下图
_________________________________________________________________________________________
三、解决安装过程中遇到的常见问题
1、安装完成后mysql的root用户默认密码为空,通过指令sudo mysql -u root -p登陆会失败
[ERROR 1698 (28000): Access denied for user 'root'@'localhost']
解决办法:修改mysql配置文件,跳过权限验证登陆Mysql服务,修改root密码;
操作步骤如下:
(1) 修改sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件
在[mysqld]的图示位置添加如图配置:skip-grant-tables 这样可以跳过权限验证登陆
修改完成后保存退出,记得重启mysql服务 service mysql restart
(2) mysql //登陆MySQL服务
(3)use mysql; //选择mysql库
(4) 修改root用户密码
update user set authentication_string = password('123456'), password_expired = 'N', password_last_changed = now() where User = 'root';
//mysql 5.7 之前的版本 密码字段是 password;在5.7 修改为了 authentication_string;
(5)quit; //退出mysql
(6) sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉skip-grant-tables
(7) service mysql restart //重启mysql服务
重启完成后,再使用mysql 无密码登陆,会报错,如下图:[说明skip-grant-tables被注掉了]
使用 mysql -uroot -p123456 同样报错:
[在5.7及之后的版本中,若要以root用户登录系统,必须使用sudo]
使用 sudo mysql -uroot -p123456 登入成功:
2、安装完成后,mysql的root用户不具备远程访问权限,使用Navicat登陆MYSQL会失败
[1130 -Host '192.168.xxx.xxx' is not allowed to connect to this MySQL server]
解决办法:远程访问授权
操作步骤:
(1) sudo mysql -uroot -p123456
(2) 执行指令,root用户对所有远程主机开放权限;
grant all on *.* to root@'%' identified by '123456' with grant option;
(3) FLUSH PRIVILEGES;
(4) quit;
(5) service mysql restart;
备注: 如需解除远程访问授权,只需要删除掉root@%即可
DELETE FROM user WHERE User='root' AND Host='%';//删除root@%
quit;//退出Mysql服务
service mysql restart; //重启mysql服务