1.安装环境
linux: centos 7.9
MySQL: 8.0.23
安装目录: /opt/mysql (任一目录都可)
附上MySQL官网的下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,进去之后的界面如下,点击"Archives"标签页可以选择不同的版本,本文选择的是 mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
2.安装mysql
软件下载之后,还需要通过ftp等工具传输到目标主机。传输完成后就能进行安装操作,下面是具体步骤
1.首先需要将软件解压到某一目录下(目录可以任意指定)
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz -C /opt/ #解压到/opt/目录下
cd /opt/ #进入解压目录
mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql #将解压出来的安装包重命名为mysql,如果名字太长的话后面就不好操作,建议重命名一下
- 创建一个普通用户。实际上并不需要登录该用户,它主要是用来给mysql软件的安装目录赋权。因为mysql是通过bin/mysqld这个自带的脚本来进行初始化,该脚本会要求指定某个用户来进行安装。而现在登录的是root用户(一般不用root安装软件),所创建文件的属主都是root用户,为了mysql的脚本在安装的时候能以普通用户的权限安装mysql,所以需要创建一个普通用户mysql,且需要手动的将mysql的安装路径赋为mysql。赋权操作如下:
groupadd mysql #创建mysql用户组
useradd -r -g mysql mysql #创建mysql用户,且用户mysql属于mysql用户组
chown -R mysql:mysql /opt/mysql #赋予mysql文件夹mysql权限
3.安装mysql
需要注意的是,mysql刚开始安装的时候需要指定是否忽略大小写,因为一旦安装成功之后,就无法再修改该策略了。该策略也很简单。只需要在mysql初始化的命令后加上参数 --lower-case-table-names=1 。
cd /opt/mysql8.0.23
bin/mysqld --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data/ --initialize --lower-case-table-names=1
如果以前没有安装过的话,基本都能初始化成功(基本的依赖都存在的话网上说可能需要先下载某些依赖包,本文的操作系统并没有进行过任何环境的更新,但是并没有出现缺少依赖的情况,所以对于这种情况,本文不阐述),成功之后的界面如下,红框内的字符串为mysql的登录密码,最好复制此处的密码,后面登录的时候会使用到。如果安装不成功的话,可能是因为以前安装过msyql,或者安装目录有残留,可以参考下面的4.5进行解决。
4.启动mysql
初始化mysql之后,mysql并不会自动启动,需要手动启动。
本文启动mysql使用的是mysql自带的脚本文件/opt/mysql/support-files/mysql.server,由于脚本会指定安装路径,所以需要在启动之前改成我们安装包所在的路径。/opt/mysql/support-files/mysql.server需要更改的主要是文件中的第66行到第73行:
62 # Set some defaults
63 mysqld_pid_file_path=
64 if test -z "$basedir"
65 then
66 basedir=/opt/mysql
67 bindir=/opt/mysql/bin
68 if test -z "$datadir"
69 then
70 datadir=/opt/mysql/data
71 fi
72 sbindir=/opt/mysql/bin
73 libexecdir=/opt/mysql/bin
74 else
75 bindir="$basedir/bin"
76 if test -z "$datadir"
77 then
78 datadir="$basedir/data"
79 fi
80 sbindir="$basedir/sbin"
81 libexecdir="$basedir/libexec"
82 fi
在启动mysql的时候,启动脚本也会去/etc/my.cnf的配置文件下去取参数,所以启动之前也需要改/etc/my.cnf配置文件中的部分参数。
1 [mysqld]
2 datadir=/opt/mysql/data #
3 socket=/opt/mysql/mysql.sock
4 # Disabling symbolic-links is recommended to prevent assorted security risks
5 symbolic-links=0
6 # Settings user and group are ignored when systemd is used.
7 # If you need to run mysqld under a different user or group,
8 # customize your systemd unit file for mariadb according to the
9 # instructions in http://fedoraproject.org/wiki/Systemd
10
11 lower-case-table-names=1 #忽略大小写
12
13 [mysqld_safe]
14 log-error=/opt/mysql/data/err.log #日志文件的位置
15 pid-file=/opt/mysql/data/mariadb.pid #pid文件的位置
16
17 [client]
18 socket=/opt/mysql/mysql.sock //客户端登录的配置
19
20 #
21 # include all files from the config directory
22 #
23 !includedir /etc/my.cnf.d
/etc/my.cnf中的配置比较重要,如果配置的不对,可能会导致安装不成功。安装过程中出现的错误,贴在文后,如果出现了相似的错误可以参考一下。
在确认修改完以上两个文件后,就可以启动mysql了
./support-files/mysql.server start #mysql启动命令
启动成功之后的界面如下:
也可以使用 ./support-files/mysql.server status
查看mysql的状态
mysql启动成功之后,可以使用mysql安装包自带的脚本(/binmysql)进入mysql
bin/mysql -uroot -p'一开始出现的密码'
由于mysql命令会经常用到,可以将bin/mysql链接到系统默认的/usr/bin路径下
ln -s /opt/mysql/bin/mysql /usr/bin
bin/mysql -uroot -p一开始出现的密码
3.验证
进入mysql之后,输入 show databases 会出现如下错误:
这是因为第一次登录时mysql要求强制改密码,使用如下命令修改mysql的初始密码
alter user 'root'@'localhost' identified by "你的新密码";
修改密码之后就可以正常的使用mysql了。
4.错误
MySQL安装过程中出现的诸多错误,记录在下一篇博客中,mysql安装错误。