MySQL 安装

felix.shao2025-02-18

MySQL 安装

1 概述

2 MySQL 8 安装

 安装包 mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz下载传送门open in new window

2.1 解压 MySQL

$ cp mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz /usr/local
$ cd /usr/local && tar -xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
$ mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql

2.2 配置 MySQL 环境变量

$ vim /etc/profile
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

$ source /etc/profile

2.3 创建 MySQL 用户和组

$ groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql

2.4 创建 data 及日志目录

$ mkdir -p /data/mysql && cd /usr/local/mysql
$ mkdir /var/log/mariadb 
$ touch /var/log/mariadb/mariadb.log 
$ chown -R mysql:mysql /var/log/mariadb/

2.5 初始化数据库

 步骤可选:libnuma 若安装的是 32 位的,需要卸载后换为 64 位的。具体命令为 $ yum remove libnuma.so.1 && yum -y install numactl.x86_64
 然后执行下面命令初始化数据库,注意保持生成的临时密码

$ ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql
# 注意保存生成的临时密码,如 jkZiDeFQ5s(F 然后继续执行
$ ./bin/mysql_ssl_rsa_setup --datadir=/data/mysql

2.6 配置文件修改

$ vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql # 指定程序路径
datadir=/data/mysql # 指定数据存放路径
port=3306 # 指定端口号

socket=/tmp/mysql.sock # 指定 sock 文件,必须,不然启动会失败

2.7 复制启动文件并修改相关参数

$ cd /usr/local/mysql
$ cp ./support-files/mysql.server /etc/init.d/mysqld
$ vi /etc/init.d/mysqld
basedir=/usr/local/mysql # 指定程序路径
datadir=/data/mysql # 指定数据存放路径

2.8 安装好后配置

$ chkconfig --add mysqld # 加入开机启动
$ /etc/init.d/mysqld start # 启动 MySQL 服务
$ ps aux |grep mysqld # 查看 MySQL 进程
$ netstat -ntlp | grep 3306 # 查看 3306 端口监听情况

2.9 修改密码及授权远程访问

$ mysql -uroot -p'jkZiDeFQ5s(F'
mysql> alter user 'root'@'localhost' identified by 'root123456';
mysql> use mysql
mysql> update user set host='%' where user='root' limit 1;
mysql> flush privileges;

2.10 编码配置,防止中文乱码

$ /etc/init.d/mysqld stop
$ vi /etc/my.cnf
[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

$ /etc/init.d/mysqld start

# 验证
$ mysql -uroot -p'root123456'
mysql> show variables like '%char%';

2.11 其他

  1. Navicat 登录不上处理
$ mysql -uroot -p'root123456'
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456'; 
  1. Operation ALTER USER failed for ‘root‘@‘%‘open in new window

3 MySQL 5 安装

 安装包 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz下载传送门open in new window

3.1 解压 MySQL

$ cp mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz /usr/local
$ cd /usr/local && tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql

3.2 配置 MySQL 环境变量

$ vim /etc/profile
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

$ source /etc/profile

3.3 创建 MySQL 用户和组

$ groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql

3.4 创建 data 及日志目录

$ mkdir -p /data/mysql && cd /usr/local/mysql
$ mkdir /var/log/mariadb 
$ touch /var/log/mariadb/mariadb.log 
$ chown -R mysql:mysql /var/log/mariadb/

3.5 初始化数据库

 步骤可选:libnuma 若安装的是 32 位的,需要卸载后换为 64 位的。具体命令为 $ yum remove libnuma.so.1 && yum -y install numactl.x86_64
 然后执行下面命令初始化数据库,注意保持生成的临时密码

$ ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql
# 注意保存生成的临时密码,如 jkZiDeFQ5s(F 然后继续执行
$ ./bin/mysql_ssl_rsa_setup --datadir=/data/mysql

3.6 配置文件修改

$ vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql # 指定程序路径
datadir=/data/mysql # 指定数据存放路径
port=3306 # 指定端口号

socket=/tmp/mysql.sock # 指定 sock 文件,必须,不然启动会失败

3.7 复制启动文件并修改相关参数

$ cd /usr/local/mysql
$ cp ./support-files/mysql.server /etc/init.d/mysqld
$ vi /etc/init.d/mysqld
basedir=/usr/local/mysql # 指定程序路径
datadir=/data/mysql # 指定数据存放路径

3.8 安装好后配置

$ chkconfig --add mysqld # 加入开机启动
$ /etc/init.d/mysqld start # 启动 MySQL 服务
$ ps aux |grep mysqld # 查看 MySQL 进程
$ netstat -ntlp | grep 3306 # 查看 3306 端口监听情况

3.9 修改密码及授权远程访问

$ mysql -uroot -p'jkZiDeFQ5s(F'
mysql> set password = password('root');
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
mysql> flush privileges;

3.10 编码配置,防止中文乱码

$ /etc/init.d/mysqld stop
$ vi /etc/my.cnf
[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

$ /etc/init.d/mysqld start

# 验证
$ mysql -uroot -p'root123456'
mysql> show variables like '%char%';

4 安装常见问题

4.1 /tmp/mysql.sock

mkdir /var/run/mysqld/
sudo ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock

4.2 大小写不敏感设置

 注意默认是大小写敏感,可以使用命令 show global variables like '%case%'; 查看,OFF 是大小写敏感。
 如果需要大小写不敏感

附录一 、MySQL 官方数据集使用

准备工作,拷贝文件等,如 `docker cp employees_db mysql:/data`,修改 employees.sql 文件
set default_storage_engine = InnoDB;
-- select CONCAT('storage engine: ', @@storage_engine) as INFO;

执行以下命令导入数据 mysql -t -uroot -p <employees.sql
Last Updated 2/27/2025, 3:07:51 PM