Skip to main content
  1. 笔记/

Ubuntu系统安装MySQL教程

·1 min
ubuntu mysql linux
Table of Contents

安装
#

  • 命令安装
sudo apt install mysql-server
  • 安装完成后验证
sudo systemctl status mysql

如果安装成功如下显示:

mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
   Main PID: 8617 (mysqld)
     Status: "Server is operational"

用户密码设置
#

安装完成后开始无法通过==mysql -u root -p==登录到服务器,可以将身份验证方法从auth_socket更改为mysql_native_password 1.通过sudo mysql连接到mysql服务器

sudo mysql

2.运行==ALTER USER SQL==语句使root用户使用密码进行身份验证

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

3.设置完成后使用==mysql -u root -p== 登录;连接成功即可

数据库用户权限
#

  • 创建数据库
CREATE DATABASE IF NOT EXISTS database_name;
  • 显示数据库列表
SHOW DATABASES;
  • 创建mysql用户账户
CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

在上面的命令中,我们将主机名部分设置为localhost,这意味着该用户将只能从本地主机(即从运行MySQL Server的系统)连接到MySQL服务器。如果您想授予其他主机的访问权限,只需使用远程计算机IP更改localhost或对主机部分使用'%'通配符,这意味着该用户帐户将能够从任何主机进行连接。

  • 修改账户密码
SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');
  • 查询所有用户
SELECT user , host FROM mysql.user;
  • 删除用户
DROP USER 'database_user@'localhost';
  • 用户权限赋予

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

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

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

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

3.要通过数据库从特定表授予用户帐户所有特权,请使用以下命令:

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

4.如果只想授予特定数据库类型的用户帐户特定特权,则:

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

5.撤销权限

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

6.查询用户权限

SHOW GRANTS FOR 'database_user'@'localhost';

配置远程连接
#

如果要通过公共网络连接到MySQL服务器,请将MySQL服务器设置为监听计算机上的所有IP地址。 需要编辑MySQL配置文件并添加或更改bind-address选项的值。您可以设置一个IP地址和IP范围。 在Ubuntu和Debian中,文件位于/etc/mysql/mysql.conf.d/mysqld.cnf,而在基于Red Hat的发行版(如CentOS)中,文件位于/etc/my.cnf。 如果地址为0.0.0.0,则MySQL服务器接受所有远程主机IPv4接口上的连接。如果你需要使用IPv6,请使用::代替0.0.0.0。 完成后,重新启动MySQL服务以使更改生效。

sudo systemctl restart mysql

授予远程访问权限

GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';

其中database_name是用户将连接到的数据库的名称。user_name是MySQL用户的名称。

ip_address是用户本地计算机的IP地址。使用%允许用户从任何IP地址进行连接。user_password是用户密码。 例如,仅允许IP是10.8.0.5的客户端使用密码my_passwd和用户名为foo访问数据库dbname,请运行以下命令,如需允许所有IP,请使用%代替IP地址。

GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';

Navicat建议使用ssh隧道,参考https://www.myfreax.com/mysql-ssh-tunnel/

参考链接
#

安装 权限 远程访问

Zsh和Oh-My-Zsh的安装和使用指南
·1 min
zsh linux