安装MySQL

企业一般使用MySQL二进制包安装MySQL8.0

另外还有yum/apt、源码、Shell一键安装、容器化安装(Docker一键安装)安装方式

前期准备

  1. 关闭防火墙和沙盒

  2. 安装依赖环境

  3. 安装二进制包

  4. 安装路径与权限

  5. 修改配置与初始化

  6. 设置环境变量

  7. 修改密码

  8. 设置开机启动

  9. 设置远程登录

客户端-图形化

工具分类

Web 端(无需安装客户端)

工具

类型

收费

平台

特点

phpMyAdmin

Web 应用

免费

任何有浏览器的设备

PHP 开发,Web 端管理

桌面端(需安装软件)

工具

开发商

收费

平台

特点

Navicat

PremiumSoft

付费

Win/Mac/Linux

功能最强,多数据库支持

SQLyog

Webyog

付费/免费版

Windows

专注 MySQL,功能深入

Workbench

Oracle

免费

Win/Mac/Linux

MySQL 官方工具

DataGrip

JetBrains

付费

Win/Mac/Linux

开发者友好,智能编码

VSCode+插件

Microsoft 社区

免费

Win/Mac/Linux

轻量级,集成开发环境

1.安装依赖环境

 1.安装依赖环境
 ​
 # CentOS7
 yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel
 ​
 # Ubuntu22.04
 sudo apt update
 sudo apt install -y libaio1 libaio-dev libtinfo5 libncurses-dev libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev libssl-dev

2.安装二进制包

 2.下载二进制包
 ​
 # wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
 ​
 # wget http://192.168.57.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
 ​
 # 从真机上传安装到Linux系统中;
 # FTP,SFTP,lrzsz
 ​
 apt install -y lrzsz                    #这个是ubuntu的本地与Linux传输工具
 ​
 rz  文件   # 远程上传文件到Linux系统
 sz  文件   # 下载文件到真机上

3.安装路径与权限

 3.设置安装路径与权限
 ​
 # 解压
 tar  -xvf 压缩包名字
 ​
 # 将mysql文件夹,剪切并改名
 mv 解压好的mysql文件名字  /usr/local/mysql      # 指定mysql的软件路径
 ​
 # 创建mysql用户
 useradd mysql -M -s /sbin/nologin            # 创建 mysql 的系统用户
                                             专门用于运行 MySQL 服务,并限制其登录权限
 ​
 # 创建数据库数据目录  
 mkdir /usr/local/mysql/data                  # 创建一个 data 的子目录
                                             专门用于存储 MySQL 的数据库文件
 ​
 # 更改mysql目录权限
 chown mysql:mysql -R /usr/local/mysql        # 确保服务能以 mysql 用户身份正常运行没有                                            它将无法写入数据目录和日志文件导致启动失败

4.修改配置与初始化

 4.修改配置与初始化
 ​
 # 修改MySQL配置文件
 cat << EOF > /etc/my.cnf
 [mysqld]
 port = 3306                                   # 服务监听端口,默认 3306
 basedir = /usr/local/mysql                    # 安装根目录
 datadir = /usr/local/mysql/data               # 数据文件存放目录(数据库实际存储位置)
 log-error = /usr/local/mysql/data/error.log   # 错误日志文件路径记录错误信息
 pid-file = /usr/local/mysql/data/mysql.pid    # 进程 ID 文件路径,记录服务的进程号
 socket = /tmp/mysql.sock
 character-set-server=utf8mb4
 collation-server=utf8mb4_unicode_ci
 default-storage-engine=InnoDB
 default-authentication-plugin=mysql_native_password
 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 EOF
 ​
 # 执行初始化
 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
 ​
 # 初始化 MySQL 数据库,创建系统数据库和系统表,并生成一个临时的 root 密码。
 cat /usr/local/mysql/data/error.log
 ​
 ## 临时的 root 密码
 A temporary password is generated for root@localhost: -fLgN:9iq)jf
 ​
 ​
 # 初始化成功后,启动MySQL
 /usr/local/mysql/support-files/mysql.server start
 ​
 ## 正在尝试启动 MySQL 服务  启动成功,没有任何错误
 Starting MySQL.. SUCCESS! 
 ​
 # 查看端口 3306 的监听状态,确认 MySQL 服务是否正常监听。
 ss -lnutp|grep 3306
    
 ## 显示信息
 tcp  LISTEN  0  128   [::]:3306     [::]:*    users:(("mysqld",pid=2003,fd=32))
 tcp  LISTEN  0  70    [::]:33060    [::]:*    users:(("mysqld",pid=2003,fd=30))

5.设置环境变量

 5.设置环境变量
 ​
 # 修改系统环境变量
 # 想要在任意目录执行mysql的命令需要修改/etc/profile
 # PATH: 可执行命令的目录路径
 vim /etc/profile
 ​
 # 最后一行添加
 export PATH=$PATH:/usr/local/mysql/bin      # 让你可以在任何位置直接使用 MySQL 命令
                 
 source /etc/profile                        # 重新加载系统环境变量配置文件,立即生效

6.修改密码

 6.修改密码
 ​
 # 使用你的初始密码登录MySQL
 mysql -uroot -p'临时密码'
 ​
 # 修改密码 需要进入mysql里面修改
 alter user 'root'@'localhost' identified by '新的密码';

7.设置开机启动

 7.设置开机启动
 ​
 # 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
 # 让系统能够通过 systemctl 命令管理 MySQL。否则命令会失败。
 cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
 ​
 # 配置mysqld开机启动后,可以使用systemctl管理mysqld
 systemctl enable  mysqld        # 设置 MySQL 开机自启
 systemctl restart mysqld        # 重启 MySQL 服务
 systemctl status  mysqld        # 查看 MySQL 服务状态
 ​
 # 列出数据库服务器上的所有数据库
 ## 需要登陆mysql数据库里面操作
 show databases;

8.设置远程登录

 8.设置远程登录
 ​
 # 服务端本地登录MySQL
 mysql -uroot -p密码           #-p后面直接输入密码,没有空格
 ​
 # 创建一个允许从任何主机远程连接 MySQL 的 root 用户
 ## 需要登陆mysql数据库里面操作
 ## 'root'@'%'   用户名 root,允许从任何主机连接(% 是通配符)
 create user 'root'@'%' identified with mysql_native_password by '密码';
 ## 提示成功
 Query OK, 0 rows affected (0.01 sec)
 ​
 注:'root'@'localhost'    仅本机     本地管理(已存在)
    'root'@'%'            任何主机    远程管理(你创建的)
 ​
 # 设置开放权限,授予 root 用户从任何主机连接的所有权限
 ## 需要登陆mysql数据库里面操作
 grant all on *.* to 'root'@'%';
 ## 提示成功
 Query OK, 0 rows affected (0.00 sec)
 ​
 注:GRANT ALL        授予所有权限(SELECT, INSERT, UPDATE, DELETE, CREATE, DROP 等)
    ON *.*           所有数据库()中的所有表()
    TO 'root'@'%'    授予给 root 用户,允许从任何主机连接
 ​
 # 刷新使权限生效
 ## 需要登陆mysql数据库里面操作
 flush privileges;
 ## 提示成功
 Query OK, 0 rows affected (0.00 sec)
 ​

忘记MySQL

 # 如果忘记MySQL的root密码时,重置方法
 vim /etc/my.cnf
 ​
 # 在mysqld下最后一行添加跳过密码
 skip-grant-tables
 ​
 # 重新启动服务
 systemctl restart mysqld
                
 # 输入mysql后就可以直接登录不需要修改密码
 ## 修改好密码后、把skip-grant-tables注释