Ubuntu20.04安装mysql8.0并设置远程连接

Ubuntu20.04安装mysql8.0并设置远程连接

更新源

sudo apt update

执行MySQL安装命令,安装完毕默认启动

sudo apt install mysql-server

查看/启动/停止 MySQL服务状态:

sudo systemctl status mysql
sudo systemctl start mysql
sudo systemctl stop mysql

MySQL快速安装脚本mysql_secure_installation,。

调用脚本来轻松设置和管理mysql 初始化工作,配置数据库服务器的安全性工作。

sudo mysql_secure_installation

安全设置之一,选择MySQL设置密码的强度

密码验证策略分为三个级别:低,中和强

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

安全设置之一,设置MySQL root用户的密码

Please set the password for root here.

New password: 

Re-enter new password: 

接下来,脚本将要求删除匿名用户,限制root用户对本地计算机的访问,删除测试数据库并重新加载特权表。

先以root用户身份登录到MySQL服务器,请输入:

sudo mysql

设置外部程序(例如IDEA)以root用户身份登录到MySQL服务器

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
# 刷新设置
FLUSH PRIVILEGES;

之后便可以通过密码登录 mysql

mysql -u root -p

远程访问相关设置

向MySQL用户帐户授予权限

要授予对特定数据库用户帐户的所有特权,请使用以下命令:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

# myroot 用户设置所有主机可以访问,并给定操作数据库所有权限

create user myroot@'%' identified by 'Mypasswd@123';

grant all privileges on *.* to myroot@'%' with grant option;

要授予对所有数据库用户帐户的所有特权,请使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

要对数据库中的特定表授予用户帐户的所有特权,请使用以下命令:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

如果要仅授予特定数据库类型的用户帐户特定特权,请执行以下操作:

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

从MySQL用户帐户撤消权限

如果您需要撤消一个用户帐户的一个或多个特权或所有特权,则语法几乎与授予它相同。例如,如果要撤消特定数据库上用户帐户的所有特权,请使用以下命令:

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

刷新配置

FLUSH PRIVILEGES;

更改mysql配置文件:

在更改MySQL配置文件时一定要停止MySQL服务否则配置文件无法保存

sudo systemctl stop mysql

vim /etc/mysql/mysql.conf.d/mysqld.cnf

注掉 bind-address = 127.0.0.1

# bind-address = 127.0.0.1

配置字符集,统一字符集为utf8

[client]中添加
default-character-set=utf8
[mysql]中添加
default-character-set=utf8
[mysqld]中添加
character-set-server = utf8

设置后重启mysql 服务,查询字符集设置结果

show variables like '%char%';

设置成功结果显示

+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | utf8                       |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | utf8                       |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password.special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.01 sec)

启动MySQL服务:

sudo service mysql start

查看服务状态:

sudo service mysql status

远程登录测试

使用 Navicat Premium 12 测试远程登录

1、新建MySQL连接

2、配置连接信息

3、点击测试连接 ---- > 显示连接成功

注意:如果连接测试失败,远程Navicat无法连接,提示密码规则错误,需要更改mysql密码规则

mysql8的加密方式和Navicat不一样,使用和Navicat匹配的密码加密规则,重新设定密码。

ALTER USER '用户'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
ALTER USER '用户'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

你可能感兴趣的:(Ubuntu20.04安装mysql8.0并设置远程连接)