By wuzhenzhen, 28 May, 2024

1. 查看系统的版本

getconf LONG_BIT     # 查询结果显示,系统为64位

2. 确定安装目录,并下载MySQL数据库压缩包

cd /usr/local/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.2.0-linux-glibc2.17-x86_64.tar.xz

3. 解压,并重命名

tar -xvf mysql-8.2.0-linux-glibc2.17-x86_64.tar.xz
mv mysql-8.2.0-linux-glibc2.17-x86_64  mysql

4. 创建data目录

mkdir data

5. 创建MySQL用户组和用户

#进入mysql目录
cd /usr/local/mysql
#添加用户组
groupadd mysql
#添加用户
useradd -g mysql mysql

6. 更改mysql文件夹的权限

chown -R mysql.mysql /usr/local/mysql

7. 为MySQL配置环境

touch /etc/my.cnf

my.cnf文件的内容如下(记得修改为自己的路径):

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[client]
port=3306
socket=/usr/local/mysql/mysql.sock
!includedir /etc/my.cnf.d

8.  进入mysql的bin目录,进行初始化,记录最终初始化后的密码

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize

# 报错1:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

# 报错linux环境缺少libaio.so.1
# 安装该包
apt-get install libaio1 

# 报错2:error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

# 安装包
apt-get install numactl 

9. 加入系统服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql

# 报错:chkconfig找不到
#原因:在ubuntu中chkconfig 已经被 sysv-rc-conf 所替代
apt-get update
apt-get install sysv-rc-conf

10. 启动MySQL

service mysql start

11. 修改MySQL的初始化密码

# 进入MySQL
root@82704f699d2f:/usr/local/mysql/bin# ./mysql -u root -p
./mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
## 报错,库文件找不到,查找发现是系统内的库文件版本不对,增加软连接,以解决版本问题(可能由于版本之间差异不大,所以可以替换)
ln -s /lib/x86_64-linux-gnu/libncurses.so.6 /lib/x86_64-linux-gnu/libncurses.so.5
## 下面的报错用相同的方式处理
root@82704f699d2f:/usr/local/mysql/bin# ./mysql -u root -p
./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
root@82704f699d2f:/usr/local/mysql/bin# ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5

# 修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'wuzhenzhen2020';
#刷新权限
flush privileges;

 

至此,MySQL安装完成。