下载MySQL
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz
解压MySQL
tar -xf mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
创建用户以及数据目录
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local
ln -s /usr/local/mysql-8.4.3-linux-glibc2.28-x86_64/ mysql
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files/
chmod 750 mysql-files/
创建MySQL初始化配置文件
创建文件/etc/my.cnf,内容如下
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
bind-address = 0.0.0.0
port = 3306
socket = /tmp/mysql.sock
character_set_server = utf8mb4
basedir = /usr/local/mysql
datadir = /usr/local/mysql/mysql-files
开始初始化MySQL
bin/mysqld --initialize --user=mysql
执行上述命令后可能会有如下错误输出,提示我们缺少libaio库
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
该错误的解决办法
# 安装依赖库
sudo apt install numactl libaio1t64 -y
# 创建软链接
ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64.0.2 /usr/lib/x86_64-linux-gnu/libaio.so.1
重新执行初始化命令
→ bin/mysqld --initialize --user=mysql
2024-10-26T12:48:15.135476Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-10-26T12:48:15.136976Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.4.3-linux-glibc2.28-x86_64/bin/mysqld (mysqld 8.4.3) initializing of server in progress as process 14465
2024-10-26T12:48:15.150614Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-10-26T12:48:16.458511Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-10-26T12:48:20.521085Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: t;fAIhvzC0<j
2024-10-26T12:48:26.059732Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
拷贝MySQL启动脚本
cp support-files/mysql.server /etc/init.d/mysql.server
启动MySQL
/etc/init.d/mysql.server start
修改PATH环境变量
将/usr/local/mysql/bin添加到PATH环境变量中,里面有一些MySQL常用的一些命令。
登陆MySQL
初始密码为我们初始化时候控制台输出的那个root密码
mysql -uroot -p
修改密码
我们将密码修改为123456
mysql> set password="123456";
Query OK, 0 rows affected (0.02 sec)