news 2026/8/26 13:58:58

Linux环境下部署MySQL8数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux环境下部署MySQL8数据库

MySQL安装

1、下载软件包:mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar

2、将软件包通过moba上传到linux系统/usr/local/soft/目录下

3、解压软件包

cd /usr/local/soft/ tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar

4、卸载系统自带mariadb

rpm -qa | grep mariadb yum -y remove mariadb-libs-5.5.52-1.el7.x86_64

5、下载依赖包(可直接全部复制粘贴,批量执行)

yum -y install openssl-devel perl-JSON yum install -y libaio.x86_64 libaio-devel.x86_64 yum install -y openssl-devel.x86_64 openssl.x86_64 yum install -y perl.x86_64 perl-devel.x86_64 yum install -y perl-JSON.noarch yum install -y autoconf yum install net-tools –y yum -y install numactl

6、顺序安装mysql(可直接全部复制粘贴,批量执行)

rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm

安装完默认是mysql用户、用户组和权限

chown -R mysql:mysql /var/lib/mysql/

7、重启mysql服务

systemctl restart mysqld.service systemctl status mysqld.service

若启动失败查看:

tail -n 100 /var/log/mysqld.log

8、查看密码

cat /var/log/mysqld.log | grep password

cd /var/log/ cat mysqld.log

9、数据库登陆

mysql -u root -p

输入第八步中的密码进行登陆

10、设置登陆密码复杂度

set global validate_password.length=4; set global validate_password.policy=0;

11、修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123'; flush privileges;

12、开放所有IP都能访问

use mysql; select host, user, authentication_string, plugin from user; CREATE USER 'root'@'%' IDENTIFIED BY 'root123'; grant all privileges ON *.* to 'root'@'%' with grant option; flush privileges;

13、修改加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123'; select host, user, authentication_string, plugin from user;

14、重启数据库

quit systemctl restart mysqld.service

或:

systemctl start mysqld

设置开机自启动

systemctl enable mysqld.service

15、远程navicat连接测试

16、其它配置

初始状态

# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove the leading "# " to disable binary logging # Binary logging captures changes between backups and is enabled by # default. It's default setting is log_bin=binlog # disable_log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M # # Remove leading # to revert to previous value for default_authentication_plugin, # this will increase compatibility with older clients. For background, see: # https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin # default-authentication-plugin=mysql_native_password datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

其它配置参考如下

vi /etc/my.cnf

# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] port=3323 #skip-grant-tables # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_allowed_packet = 500M wait_timeout=86400

重置密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'asdfadfbEVG'; ALTER USER 'root'@'%' IDENTIFIED BY 'asdfadfbEVG'; flush privileges;

FAQ

1、错误:依赖检测失败:
libcrypto.so.10()(64bit) 被 mysql-community-libs-8.0.15-1.el7.x86_64 需要

遇到类似的错误的话,可以试试在rpm安装命令后添加

--nodeps --force

如:

rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm --nodeps --force

2、云服务器上数据库总是恢复,可在配置文件中添加

innodb_force_recovery = 1

3、让表忽略大小写

由于8.0没法设置参数后重启(失败),所以必须删掉老库,重新启动才行。
切记:;本步骤要删掉老库所有资料,如果是数据库当前有用,请做好备份,再进行操作。

systemctl stop mysqld #默认数据在这里 cd /var/lib/mysql rm -rf *

编辑配置文件

vim /etc/my.cnf

配置文件中添加

symbolic-links=0 lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_allowed_packet = 500M wait_timeout=86400

重启数据库

systemctl restart mysqld

此时由于重新初始化数据库,老密码已经没有了,系统自动初始化一个随机新密码

sudo grep 'temporary password' /var/log/mysqld.log

还有一种,就是最新版的MYSQL8 默认root没密码, 直接mysql进去

重复上面10-13步骤

然后验证配置结果

show variables like '%case_table%';

重新远程连接如下:

参考地址:

Mysql8忽略大小写的解决方案.240105 - 中国的Amadeus - 博客园

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 13:53:06

在PHP中,如何实现基于事件的编程模型以提高性能?

在PHP中,基于事件的编程模型主要是用来处理那些需要等待某些外部操作(比如数据库查询、文件读写、网络请求等)完成的情况。通常,这些操作会花费一些时间,如果我们的代码只是傻傻地等在那里,不做其他事情&am…

作者头像 李华
网站建设 2026/8/26 13:47:57

JobRadar实战:本地LLM Agent驱动的智能招聘筛选与评分排序

年初开始认真整理自己的求职工具链,被一个很有意思的开源项目吸引了注意力——JobRadar。它不是一个普通的招聘网站爬虫,而是把 LLM Agent 的思路真正用到了招聘信息筛选场景里:用本地运行的 LLM 给每一条职位数据打分,再根据分数…

作者头像 李华
网站建设 2026/8/26 13:46:12

数据预处理与机器学习模型应用泰坦尼克号2020生还预测

泰坦尼克号沉船事件作为历史上最著名的海难之一,吸引了众多关于其发生原因及幸存者情况的研究。利用机器学习技术分析乘客生还情况,不仅为人们提供了更深入的历史了解,也为实际应用中的预测模型提供了一个极好的学习平台。通过对乘客基本信息及行为特征的分析,可以预测哪些…

作者头像 李华
网站建设 2026/8/26 13:46:12

基于本地模型的AI编程学习:从Prompt设计到Agent实践

在实际开发中,把 AI 当作学习工具,已经不再是“要不要用”的问题,而是“怎么用才不会变成复制粘贴”。Hacker News 上经常有开发者发起同一个讨论:How are you using AI to learn? 翻看评论区会发现,真正能坚持下来的…

作者头像 李华
网站建设 2026/8/26 13:42:15

nginx部署多个项目

前言实现在一台服务器上使用nginx部署多个项目的方法查看并修改nginx安装的默认配置文件 在 Linux 操作系统中,Nginx 在编译安装时默认的配置文件路径是 /usr/local/nginx/conf/nginx.conf。 如果是通过发行版的包管理器安装,则默认的配置文件路径可能会…

作者头像 李华
网站建设 2026/8/26 13:39:36

Vue3瀑布流(Waterfall)

Vue2瀑布流(Waterfall) 瀑布流_百度百科 可自定义设置以下属性: 图片数组(images),类型:Image[],默认 [] 要划分的列数(columnCount),类型&am…

作者头像 李华