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已经能够正常运行。

相关推荐
阿坤带你走近大数据4 小时前
DM达梦数据库的介绍
数据库·mysql·oracle·国产信创
数据库小学妹5 小时前
企业级数据库迁移实践:从Oracle到国产数据库的兼容性与实施策略
数据库·mysql·oracle·dba
qq_297574676 小时前
MySQL核心技术实战系列(第二篇):MySQL核心基础:库与表的增删改查(CRUD)实战
数据库·mysql
Irene19916 小时前
SQL示例:明辨窗口函数和聚合函数的使用和选择
mysql·oracle
数据库小学妹6 小时前
CDC实时数据同步:让数据库变更秒级流向大数据平台!
大数据·数据库·mysql·kafka·dba
XZ-0700016 小时前
MySQL-视图
数据库·mysql
C137的本贾尼6 小时前
查询进阶:排序、过滤与分页
数据库·mysql
青云计划7 小时前
MySQL技术文档
java·mysql
qq_297574677 小时前
MySQL核心技术实战系列(第一篇):MySQL零基础入门:安装、配置与客户端工具使用 一、前言
数据库·mysql·adb