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】即可获取到博主的联系信息,与博主一块学习进步提升。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix