Linux安装MySQL8.0(超详细图文)
0.查看Linux发行版
我的是: CentOS8
1.卸载MySQL
1.1.检查是否安装
rpm -qa | grep mysql
1.2.如已安装mysql,则删除
rpm -e --nodeps +包名
1.3.再次检查安装包是否全部删除
1.4.搜索mysql文件夹
find / -name mysql
1.5.若有mysql文件夹,则删除
rm -rf +包名
1.6.再次检查文件夹是否全部删除
2.下载MySQL安装包
官方网址:https://downloads.mysql.com/archives/community/
2.1.上传到服务器目录
2.2.解压
tar -xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
文件夹重命名为mysql,移动位置并重新命名
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysq
2.3.创建mysql用户组和用户并修改权限
groupadd mysql #创建一个新的用户组,名为“mysql” useradd -r -g mysql mysql #创建一个新的用户,也名为“mysql”
2.4.创建目录并赋予权限
mkdir -p /data/mysql #创建目录 chown mysql:mysql -R /data/mysql #赋予权限
2.5.配置my.cnf文件
新增my.cnf文件(没有就手动新建)
配置内容如下:
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
2.6.初始化数据库
2.6.1.进入bin目录下
cd usr/local/mysql/bin/
2.6.2.初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
这个错误信息表明,mysqld 进程在尝试加载 libaio.so.1 这个共享库文件时失败了,因为系统找不到这个文件。libaio(异步I/O库)是MySQL在某些操作系统上需要的依赖库之一。
要解决这个问题,你需要安装 libaio 库。这通常可以通过你的操作系统的包管理器来完成。以下是一些常见Linux发行版的安装命令:
sudo yum install libaio
2.6.3.查看密码
cat /data/mysql/mysql.err
2.6.4.将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
将 mysql.server 脚本放置到 /etc/init.d/mysql 目录中的主要作用是使得你可以使用标准的系统服务管理工具来管理 MySQL 服务。在 Linux 系统中,/etc/init.d/ 目录存放的是一系列系统服务的管理(启动、停止等)脚本。
mysql.server 是一个官方针对 Unix 和类 Unix 系统二进制版本安装包中包含的脚本,它主要用于启动、查看和停止 mysqld 进程服务。当 mysql.server 脚本被放置在 /etc/init.d/mysql 目录中后,你可以使用 service 命令来管理 MySQL 服务,例如:
service mysql start:启动 MySQL 服务。
service mysql stop:停止 MySQL 服务。
service mysql restart:重启 MySQL 服务。
这样,你就可以很方便地通过标准的系统服务管理工具来管理 MySQL 服务了。不过,在实际操作中,你还需要确保 MySQL 的配置文件(如 my.cnf)已经正确设置,并且 MySQL 的数据目录和其他相关目录的权限和所有权设置也是正确的。
2.6.5.启动
#启动 service mysql start #查询 ps -ef|grep mysql
2.6.6.设置mysql环境变量
export PATH=$PATH:/usr/local/mysql/bin
/etc/profile 在最后添加一行:
export PATH=$PATH:/usr/local/mysql/bin
刷新配置:source /etc/profile
检查环境,确认 MySQL 及其工具是否已经安装在你的系统上
whereis mysql; whereis mysqldump;
3.配置MySQL
3.1.成功进入
mysql -u root -p
3.2.设置密码
设置
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '@root123456';
刷新
flush privileges;
以我被黑掉数据库而已,一定要设置复杂点的密码啊!!!(为什么重新安装因为就是被黑掉了啊)
3.3.配置远程连接
3.3.1.设置权限
use mysql; update user set host='%' where user='root'; flush privileges;
3.3.2.开放3306端口 & 服务器入栈规则3306端口(服务器控制台设置)
# 管理防火墙 firewall-cmd --state # 查看防火墙状态 systemctl start firewalld # 开启防火墙 systemctl stop firewalld.service # 停止防火墙 systemctl disable firewalld.service # 禁止防火墙开机启动 systemctl restart firewalld.service # 重启防火墙 # 开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放端口之后 需要重新启动防火墙 systemctl restart firewalld.service # 重启防火墙