Ubuntu22.04安装Mysql8.0(在线&离线)

Ubuntu22.04安装Mysql(在线&离线)

1、(在线)安装MySQL

(1)更新软件包列表
sudo apt-get update
(2)查看可使用的MySQL安装包(该步骤可忽略)
sudo apt-get search mysql-server
(3)安装MySQL

如果不加-y​ 会在安装过程中,系统将提示你设置MySQL的root密码。确保密码足够强,且记住它,因为你将在以后需要用到它。

sudo apt-get install -y mysql-server

若使用指定版本

sudo apt-get install -y mysql-server-8.0
(4)启动MySQL服务
sudo systemctl start mysql
(5)设置开机自启动
sudo systemctl enable mysql

image

(6)检查MySQL是否在运行
sudo systemctl status mysql

2、(离线)安装MySQL

(1)获取安装包并解压安装

安装包下载地址:https://dev.mysql.com/downloads/mysql/8.0.html,选择对应的ubuntu系统版本,下载到本地或者使用我们的安装包

在指定路径下新建一个mysql文件夹,进入该路径上传tar安装包

mkdir /home/ubuntu/mysql
cd /home/ubuntu/mysql

上传至服务器后解压,根据需要移动至待安装的文件夹

tar -xvf mysql-server_8.0.39-1ubuntu22.04_amd64.deb-bundle.tar
mv /home/ubuntu/mysql/ /usr/local/
# 若安装在/usr/local/mysql目录下需要设置目录权限
cd /usr/local/mysql
sudo chown -R mysql:mysql .
(2)安装依赖

可以提前上传安装时使用的libiao1和libmecab2,该文档使用的是x86_64架构,使用以下指令可以查看架构和系统版本

uname -a
lsb_release -a

image

libaio1和libmecab2对应选择合适的系统版本(在镜像链接上按下shift再点击即可下载)

https://packages.ubuntu.com/jammy/libaio1/

https://packages.ubuntu.com/jammy/libmecab2

上传至mysql​文件夹下后执行以下指令

sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb
sudo dpkg -i libmecab2_0.996-14build9_amd64.deb

下面需要按照顺序依次执行语句安装依赖包

# 安装通用依赖包
sudo dpkg -i mysql-common_8.0.39-1ubuntu22.04_amd64.deb
# 安装客户端相关包
sudo dpkg -i mysql-community-client-core_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-client_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-client-plugins_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i libmysqlclient21_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-client_8.0.39-1ubuntu22.04_amd64.deb
# 安装开发包
sudo dpkg -i libmysqlclient-dev_8.0.39-1ubuntu22.04_amd64.deb
# 安装服务器相关包
sudo dpkg -i mysql-community-server-core_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-server_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-server_8.0.39-1ubuntu22.04_amd64.deb
# 安装调试包(可忽略)
sudo dpkg -i mysql-community-server-debug_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-community-test-debug_8.0.39-1ubuntu22.04_amd64.deb
# 安装测试包(可忽略)
sudo dpkg -i mysql-community-test_8.0.39-1ubuntu22.04_amd64.deb
sudo dpkg -i mysql-testsuite_8.0.39-1ubuntu22.04_amd64.deb
(3)启动MySQL并进行初始化配置
sudo systemctl start mysql

检查Mysql是否启动

sudo systemctl status mysql

image

sudo mysql_secure_installation

脚本会提示你执行以下操作:

  • 设置 root 密码:根据提示设置 MySQL root 用户的密码。
  • 删除匿名用户:建议选择 Yes​,以删除默认的匿名用户。
  • 禁止 root 远程登录:建议选择 Yes​,以提高安全性。
  • 删除测试数据库:选择 Yes​ 删除默认的测试数据库。
  • 重新加载权限表:选择 Yes​ 以使更改立即生效
(4)设置开机自启动
sudo systemctl enable mysql
(5)登录MySQL

使用设置的密码登录

mysql -u root -p

3、配置MySQL

(1)运行MySQL安全脚本进行一些基本的安全配置(在线安装使用,离线安装已执行过可参考)

输入指令自动运行MySQL安全脚本

sudo mysql_secure_installation

按照提示进行一步步配置

  • 提示Enter password for user root:

    是要求输入 MySQL 数据库的 root​ 用户的密码,若安装 MySQL 时没有为 root​ 用户设置密码,可以直接按 Enter​ 键跳过这个步骤;如果你在 MySQL 安装过程中或之前已经为 root​ 用户设置了密码,你需要在此输入该密码。如果输入错误,将无法继续配置。

    image

  • 提示Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: Y

    选择 Y​ 来设置 VALIDATE PASSWORD​ 组件时,MySQL 将启用密码验证插件,以确保在创建或修改用户密码时,密码符合一定的复杂性要求。

    image

  • 提示Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

    要求你为 MySQL root​ 用户设置密码强度策略,不同的选项对应不同的密码复杂性要求,这里选择2,设置为最高强度级别。

    接着会评估当前密码的安全性,并提示是否需要修改。

    image

  • 提示Remove anonymous users? (Press y|Y for Yes, any other key for No) :

    询问是否需要移除匿名用户,为了安全性,通常选择y

  • 提示Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

    这是在询问你是否要禁止 root​ 用户通过远程连接登录 MySQL 服务器,为了方便管理,我们选择n

  • 提示Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

    这是在询问你是否要删除 MySQL 默认创建的 test​ 数据库以及对该数据库的访问权限,可以选择y

  • 提示Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

    这是在询问你是否要立即重新加载 MySQL 的权限表,选择y

    image

(2)查看MySQL是否允许用户远程连接(不允许远程连接的用户可忽略)
sudo grep 'bind-address' /etc/mysql/mysql.conf.d/mysqld.cnf

image

离线安装用户若没有可根据需要自己添加(也可以用能够联网的电脑上的navicat输入离线服务器的ip地址,测试root用户或者sn_1386能否连接,需要打开防火墙端口)

bind-address = 0.0.0.0
mysqlx-bind-address = 127.0.0.1

如果 bind-address​ 被设置为 0.0.0.0​ 或一个特定的 IP 地址,MySQL 将允许从这些远程地址进行连接。如果它被设置为 127.0.0.1​,则 MySQL 只允许本地连接。若没有设置允许用户远程连接,可以进入vim模式进行修改:

vim /etc/mysql/mysql.conf.d/mysqld.cnf
(3)查看防火墙设置(云服务器管理平台也需要打开对应端口)

MySQL使用的端口默认是3306

sudo ufw allow 3306
(4)检查MySQL的端口监听情况
sudo netstat -tulnp | grep mysql

image

若MySQL 正在监听 0.0.0.0:3306​ 或其他外部 IP 地址,那么它就允许远程连接。

(5)检查Mysql用户的主机权限

MySQL 用户的权限表中有一列 Host​,该列决定了特定用户可以从哪些主机连接。可以使用以下 SQL 命令在 MySQL 中检查某个用户的主机权限:

sudo mysql -u root -p
SELECT User, Host FROM mysql.user WHERE User='root';

image

用户root只允许从localhost连接

(6)登录MySQL
sudo mysql -u root -p
(7)创建navi_cloud数据库
CREATE DATABASE my_database;
(8)创建新用户并赋予权限(牢记,需要在yml配置中使用)
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON my_database.* TO '用户名'@'%';
FLUSH PRIVILEGES;

%是指允许用户从任何 IP 地址访问数据库,适合在需要远程访问的场景中使用。如果设置的用户仅需要从某些特定的 IP 地址访问数据库,建议用具体的 IP 地址代替 %

(9)验证数据库和用户
SHOW DATABASES;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值