Environment
- Ubuntu 18.04 LTS
- Mysql 5.7
Install
1 | sudo apt-get install mysql-server-5.7 |
Config
1 | sudo service mysql start #启动服务 |
- 进入MySQL目录,打开debian.cnf文件,找到默认用户和密码,使用该用户名密码进入
1
2cd /etc/mysql
sudo vim debian.cnf注意:-u和-p后面直接跟用户名密码参数值,不需要加空格1
sudo mysql -udebian-sys-maint -pXXXXXXXXXXX
- 成功进入后,执行一下mysql命令修改root账号密码
1 | show databases; |
- 重启MySQL服务,再用root账号登录即可
1
mysql -uroot -pXXXXXX
- 修改server和database的编码为utf-8插入[mysql]节,内容如下,并在[mysqld]节下增加两行
1
2cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
1 | [mysql] |
1 | [mysqld] |
- 配置MySQL允许远程访问(默认只监听127.0.0.1的请求)。
在步骤4中的文件中,找到bind-address 设置,修改如下进入mysql,修改设置用户允许远程连接。(允许任意IP地址使用root账号及xxx密码访问该MySQL服务)1
bind-address = 0.0.0.0
1
2grant all privileges on *.* to 'root'@'%' identified by 'xxxx';
flush privileges;
安装配置完成,可以使用mysql客户端(navicate)远程链接MySQL服务器。
- 修改mysql登录密码,可以直接进入mysql数据库,找到user表,针对相应的host进行修改
1
2
3use mysql;
update user set password=password("newpwd") where user="root";
flush privileges; --刷新权限(必要)
- mysql 卸载
1
2
3
4dpkg --list | grep mysql --检查mysql依赖
sudo apt-get remove mysql-common
sudo apt-get autoremove mysql-server-8.0
MySQL-8.0+
- mysql-server-8.0 安装配置
1 | sudo apt install mysql-server-8.0 |
进入MySQL环境后,使用如下命令修改root密码及加密方式。
1 | use mysql; |
此时使用root用户及新密码登录,会报如下错误。再执行如下命令
1 | ERROR 1698 (28000): Access denied for user 'root'@'localhost' |
1 | update mysql.user set plugin = 'mysql_native_password' where User = 'root'; |
此时仍然会出下面的错误
1 | ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) |
上面的步骤都试过了,还是有问题。接下来彻底解决该问题,针对mysql-server-8.0
1 | sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
文件的末尾添加一行 skip-grant-tables
,保存退出文件,使用下面的命令重启mysql服务。
1 | sudo systemctl stop mysql |
1 | #Mysql8.0 |
然后删除上面mysqld.cnf最后一行添加的内容,保存后再重启mysql服务。
- mysql授权先创建用户,再进行授权。
1
2
3
4GRANT ALL ON *.* TO 'root'@'%';
## 执行上面命令报错
ERROR 1410 (42000): You are not allowed to create a user with GRANT
1 | create user 'ubuntumysql'@'%' identified by 'xxxxx'; |
这个时候,如果你用Navicate等客户端工具连接服务器上的MySQL还报错,那从网络方面入手排查。
- 防火墙端口是否开放(
sudo ufw allow 3306
) - MySQL配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf/mysqld.cnf
中bind-address
值由127.0.0.1改为0.0.0.0 重启MySQL服务后,应该正常了。
- 本文作者: 达文西
- 本文链接: https://edsiongithub.github.io/2021/04/22/5/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!