CentoOS7安装mysql 8.0.46

1.前期准备

1.1 查看glibc版本

复制代码
ldd --version
# 下载mysql时,需要下载对应版本

1.2 查看OS版本信息

复制代码
cat /etc/os-release

1.3查看OS架构信息

复制代码
arch

1.4 卸载mariadb

复制代码
yum remove mariadb* -y

1.5 安装相关路径规划

1.安装包上传至/apps/scripts/目录下

2.数据库安装至/apps/目录下

2.数据库安装

2.1 安装包下载及上传至服务器

数据库下载地址:https://dev.mysql.com/downloads/mysql/

2.2 解压及更名

复制代码
# 解压
tar -xf mysql-8.0.46-linux-glibc2.17-x86_64.tar.xz -C /apps/
# 切换目录
cd ..
# 文件夹更名
mv mysql-8.0.46-linux-glibc2.17-x86_64 mysql

2.3 创建用户、组

复制代码
# 创建组
groupadd mysql
# 创建用户并指定组
useradd -r -g mysql -s /bin/false mysql

2.4 创建配置文件

复制代码
# 在/apps/mysql/目录下创建mysql配置文件
vim my.cnf
复制代码
# 配置文件内容如下:
[client]
port=3306
default-character-set=utf8mb4
socket=/apps/mysql/data/mysql.sock

[mysql]
default-character-set=utf8mb4
socket=/apps/mysql/data/mysql.sock

[mysqld]
port=3306
character-set-server=utf8mb4
init_connect='SET NAMES utf8mb4'
skip-character-set-client-handshake=true
basedir=/apps/mysql
datadir=/apps/mysql/data
pid-file=/apps/mysql/data/mysqld.pid
user=mysql
slow_query_log=OFF
lower_case_table_names=1
socket=/apps/mysql/data/mysql.sock
default-storage-engine=InnoDB
max_connections=600
max_connect_errors=1000
tmp_table_size=1024M
max_heap_table_size=1024M
join_buffer_size=1024M
thread_cache_size=32
key_buffer_size=256M
read_buffer_size=1M
read_rnd_buffer_size=128M
default_authentication_plugin=caching_sha2_password
sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
max_allowed_packet=256M
innodb_log_file_size=256M
innodb_log_buffer_size=512M
innodb_buffer_pool_size=1638M
innodb_flush_method=O_DIRECT
innodb_lock_wait_timeout=1800
innodb_flush_log_at_trx_commit=1
innodb_autoextend_increment=64
innodb_file_per_table=1
innodb_page_size=16K
group_concat_max_len=1024000
transaction-isolation=READ-COMMITTED
default-time-zone='+8:00'
max_connect_errors=1000

[mysqld_safe]
log-error=/apps/mysql/logs/error.log

[mysql.server]
basedir=/apps/mysql

2.5 数据库目录创建

复制代码
# 创建数据目录
mkdir {data,logs}
pwd
ls

2.6 安装目录授权

复制代码
# 授权
chown -R mysql:mysql /apps/mysql/

2.7 依赖安装

复制代码
# 安装MySQL依赖软件
yum install -y iproute ncurses-libs perl perl-Data-Dumper libaio util-linux tar gzip numactl libatomic

2.8 初始化数据库

复制代码
# 初始化数据库
bin/mysqld --initialize --user=mysql --basedir=/apps/mysql --datadir=/apps/mysql/data --lower_case_table_names=1

# --lower_case_table_names=1在初始化时候,添加该参数是因为在my.cnf中存在该参数,不加会报错

# A temporary password is generated for root@localhost: s9:TUF03K)f_
s9:TUF03K)f_为自动生成的root密码,需要记录

3.系统服务注册

3.1 系统服务文件编写

复制代码
# 注册MySQL启动服务
vim /etc/systemd/system/mysqld.service
复制代码
# mysqld.service文件详细内容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/apps/mysql/support-files/mysql.server start
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

3.2 数据库配置文件修改

复制代码
# 修改/apps/mysql/support-files/mysql.server文件中basedir和datadir,其他内容无需修改
vim /apps/mysql/support-files/mysql.server

修改内容如下:

复制代码
basedir=/apps/mysql
datadir=/apps/mysql/data

3.3 测试系统服务注册是否正常

复制代码
# 重载服务
systemctl daemon-reload
# 启动mysql服务
systemctl start mysqld
# 下图显示为服务正常、端口正常

4.连接测试

复制代码
# 测试连接
bin/mysql -h127.0.0.1 -uroot -p
Enter password:    # 输入2.8中生成 的密码


相关SQL

复制代码
# 默认密码修改
mysql> alter user root@localhost identified by 'Abc123';
# 修改数据库允许任意地址连接
mysql> update user set Host="%" where user="root";
# 创建数据库
mysql> create database test default character set utf8mb4;
# 刷新
mysql> flush privileges;

5.环境变量设置及测试

5.1 环境变量设置

复制代码
# 添加环境变量
vim /etc/profile
# 在最后添加以下两行
export MYSQL_HOME=/apps/mysql
export PATH=$PATH:$MYSQL_HOME/bin
# 重新加载配置
source /etc/profile

5.2 验证环境变量设置是否成功

复制代码
# 服务器任意位置执行:
mysql -h127.0.0.1 -uroot -pAbc123

6.常见问题

运行SQL后报错:
1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.


修改方法:
在my.cnf配置文件的mysqld板块中,新增参数:innodb_strict_mode=OFF
然后重启mysql服务


mysql重启后,此前报错的sql已经能够正常运行。

相关推荐
遇事不決洛必達14 小时前
【数据库系列】本地映射云服务器Mysql的方法
服务器·数据库·mysql·定时任务
yuezhilangniao14 小时前
xtr备份prepare到底变化了啥
mysql
yyk的萌14 小时前
创建属于自己的mysql的mcp
mysql·adb·ai·mcp
流烟默14 小时前
腾讯云Centos7.6使用yum安装MySQL8
mysql·centos·腾讯云
仙俊红14 小时前
如何优化 MySQL 深分页 SQL
android·sql·mysql
超梦dasgg15 小时前
工作中 MySQL 读写分离主从延迟:成因、影响、落地方案、生产实战处理
数据库·mysql
疯狂热爱代码的00后15 小时前
入门必看! MySQL增删改查全套示例SQL 直接复制运行
mysql
huipeng92615 小时前
企业级微服务开发实战(二):微服务基础设施搭建与中间件部署
java·redis·mysql·spring cloud·微服务·nacos·rabbitmq
可乐ea16 小时前
【知识获取与分享社区项目 | 项目日记第 24 天】终章总结:从认证、发布、计数、Feed、搜索到 RAG:完整复盘一个知识社区后端系统
java·spring boot·redis·mysql·elasticsearch·ai·kafka
小小编程路16 小时前
MySQL9.0|融合向量的新一代关系数据库安装配置教程
mysql