Centos系统安装MySQL8.0全过程

安装数据库MySQL8.0

安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。

1. 安装准备

1.1 查看是否安装mariadb

rpm -qa|grep mariadb

卸载

rpm -e --nodeps 上一步的文件名

检查是否卸载完成

rpm -qa|grep mariadb

1.2 查看是否安装libaio

rpm -qa|grep libaio

如果没有安装则执行

yum -y install libaio

有则不需要操作

1.3 查看是否安装numactl

rpm -qa|grep numactl

如果没有安装则执行

yum -y install numactl

有则不需要操作

2. 安装MySQL

这里我安装在/usr/local目录下

cd /usr/local/
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar

这里需要注意的是:这个mysql版本的地址可能后面会失效,那如何获取其他地址进行下载呢?

输入地址:https://www.mysql.com/
选择DOWNLOADS -> Community (GPL) Downloads -> MySQL Community Server -> Archives

这里耐心等待下载完成!

下载完成后,拆分tar包

tar -xvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar

解压安装包

tar -xvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz

将解压后的文件夹重命名为mysql

mv mysql-8.0.30-linux-glibc2.17-x86_64-minimal/ mysql

存储数据文件

cd mysql

在重命名后的mysql文件夹中创建data文件夹

mkdir data

2.1 设置用户组并赋权

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/

2.2 初始化MySQL

cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

注意:这里会打印一个初始密码,需要记录下来,后面用于登录::y27?RvdRy&(

2.3 启动MySQL

/usr/local/mysql/support-files/mysql.server start

设置软连接

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart

如果提示 ln: failed to create symbolic link '/etc/init.d/mysql': No such file or directory

sudo mkdir -p /etc/init.d

2.4 修改密码

 mysql -uroot -p
这里输入上一步的初始化随机密码
 
alter user 'root'@'localhost' identified by '123456';

2.5 开启远程连接

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges; 
exit;

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

2.6 开启或关闭MySQL命令

service mysql stop
service mysql start
service mysql restart

2.7 修改sql_mode设置

修改sql_mode设置,避免出现

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.t_student.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

这个错误是由于MySQL的sql_mode设置为only_full_group_by导致的。在这种模式下,当使用GROUP BY子句时,SELECT列表中的列必须是聚合函数或在GROUP BY子句中列出的列。如果SELECT列表中的列不满足这个条件,就会出现这个错误。

vim /etc/my.cnf

加入以下内容

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重启MySQL即可

service mysql restart

3. 安装过程中遇到的问题

3.1 cannot open shared object file: No such file or directory

mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

安装缺失的包文件

yum install libncurses* -y

4. 开启mysqldump

查看路径

which mysqldump

将mysqldump所在的路径添加到PATH环境变量中

export PATH=$PATH:/usr/local/mysql/bin

使修改的PATH环境变量生效

source ~/.bashrc

验证mysqldump是否已经添加到系统路径中

mysqldump --version

5. 设置开机自启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list

交流学习

如何与博主联系进行探讨

关注公众号【ssw在路上的蚂蚁】

公众号回复【666】即可获取到博主的联系信息,与博主一块学习进步提升。

posted @   努力的蚂蚁  阅读(676)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示