1、下载Mysql
地址:https://downloads.mysql.com/archives/community/
可以使用 uname -m 或 cat /proc/version 查看本机 的发行版本
用 /lib64/libc.so.6 查看glibc版本
一般linux会自带一个mysql内置服务,需要提前卸载
查看信息:rpm -qa | grep mariadb
卸载: rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
2. 上传压缩包解压
# 将文件解压到installs目录下
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz -C /opt/installs/
# 给解压的文件夹改名
cd /opt/installs
mysql-8.0.31-linux-glibc2.12-x86_64/ mysql8.0.31
# 在mysql8.0.31中创建data文件夹
mkdir -p mysql8.0.31/data
# 配置环境变量,方便使用mysql命令
vi /etc/profile
# 在最后添加
export MYSQL_HOME=/opt/installs/mysql8.0.31
export PATH=$PATH:$MYSQL_HOME/bin
# 刷新环境变量
source /etc/profile
3. 创建mysql用户和组赋权
# 创建mysql用户,会自动创建一个mysql组
useradd mysql
# 给mysql-8.0.31 文件夹赋权
chown mysql:mysql -R mysql8.0.31/
# 查看
ll
可以看到mysql-8.0.31从root组的root用户变成了mysql组的mysql用户
4. mysql初始化准备
修改/etc/my.cnf文件
vi /etc/my.cnf
#在mysqld标签下添加
port=3306
basedir=/opt/installs/mysql8.0.31
datadir=/opt/installs/mysql-8.0.31/data
socket=/tmp/mysql.sock
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
#在mysqld_safe标签下
log-error=/opt/installs/mysql8.0.31/mariadb.log
pid-file=/opt/installs/mysql8.0.31/mariadb.pid
执行初始化命令,这里的--user是执行初始化的用户,如果使用别的用户会出现启动失败,下面有参考
# 进入到mysql安装目录的bin目录下
./mysqld --defaults-file=/etc/my.cnf --basedir=/opt/installs/mysql8.0.31 --datadir=/opt/installs/mysql8.0.31/data --user=mysql --initialize
将mysql服务添加到系统服务中
# 添加mysql.service到系统服务中
cp /opt/installs/mysql8.0.31/support-files/mysql.server /etc/init.d/mysql
5. 启动,设置密码
# 启动mysql
service mysql start
这里如果和我一样报错说没有权限更改xxx.pid文件
进入mysql安装目录查看data文件夹权限,发现初始化文件属于root用户
更改文件权限再次启动
# 在mysql安装目录下执行
chown -R mysql:mysql data/
# 打开mysql服务
service mysql start
进入mysql设置密码和远程连接
# 进入mysql
mysql -u root -p
# 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
# 配置root远程连接
use mysql;
# 查看user表可以看到root用户的host是localhost,更改为%就可以实现远程连接
select user,host from user;
# 允许root用户远程连接
update user set host='%' where user='root';
# 刷新
flush privileges;
现在就可以通过navcate或idea等远程工具进行连接啦!