前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >统信 uos-server-20-1060e 二进制部署 MySQL 8.0.36

统信 uos-server-20-1060e 二进制部署 MySQL 8.0.36

作者头像
Kevin song
发布2024-02-22 14:54:14
3750
发布2024-02-22 14:54:14
举报

1,操作系统环境

统信操作系统iso

uos-server-20-1060e-amd64.iso

官方镜像下载链接

https://www.chinauos.com/resource/download-server

执行命令查看版本

代码语言:javascript
复制
cat   /etc/os-version 
uname -r
cat /proc/version

2,检查系统是否自带MySQL或MariaDB

通过以下命令检查是否安装

代码语言:javascript
复制
rpm -qa | grep mariadb

如果系统已经安装了其它版本的MySQL或者MariaDB则要将其删除,执行以下命令删除

代码语言:javascript
复制
rpm -e {mariadb-server,mariadb,mariadb-errmessage,mariadb-common}

3,安装MySQL依赖包

代码语言:javascript
复制
dnf install -y perl-Data-Dumper libaio libaio-devel
dnf install -y openssl openssl-devel openssl-libs
dnf install -y bzip2 bzip2-devel
dnf install -y libtirpc libtirpc-devel

4,MySQL 8.0.36 安装

4.1,下载MySQL安装包

打开MySQL官网下载页面,选择正确的筛选条件

https://dev.mysql.com/downloads/mysql/

Select Operating System 选择 Linux-Generic

Select OS Version 选择 mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

4.2,上传MySQL二进制包

将MySQL 8.0.36的二进制包上传到/opt目录并解压到/usr/local目录

代码语言:javascript
复制
cd /opt
tar xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz  -C /usr/local/
mv /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64/ /usr/local/mysql-8.0.36

4.3,创建MySQL用户和用户组

代码语言:javascript
复制
groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql

4.4,创建MySQL目录并授权

创建MySQL数据目录

代码语言:javascript
复制
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

创建MySQL日志目录

代码语言:javascript
复制
mkdir -p /var/log/mysql
chown mysql:mysql -R  /var/log/mysql

4.5,MySQL环境变量

(1)创建mysql目录软连接

代码语言:javascript
复制
ln -s /usr/local/mysql-8.0.36  /usr/local/mysql
chown  -R mysql.mysql mysql-8.0.36
chown  -R mysql.mysql mysql

(2)创建MySQL环境变量配置文件

代码语言:javascript
复制
echo 'MYSQL_HOME=/usr/local/mysql-8.0.36' >>  /etc/profile.d/mysql.sh
echo 'export PATH=$PATH:$MYSQL_HOME/bin' >>  /etc/profile.d/mysql.sh
source  /etc/profile.d/mysql.sh

4.6,创建my.cnf配置文件

创建my.cnf配置文件

编辑/etc/my.cnf文件

vim /etc/my.cnf

代码语言:javascript
复制
[server]
[mysqld]
lower_case_table_names=1
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/data/mysql/mysql.sock
log-error=/var/log/mysql/mysql.log
max_connections=1000
connect_timeout = 60
wait_timeout=600
interactive_timeout=600
lock_wait_timeout=3600
skip_name_resolve=1
skip_external_locking=1
open_files_limit=65535
explicit_defaults_for_timestamp=1
slow_query_log=1
#slow_query_log_file=/var/log/mysql/slow.log
general-log=1
#general-log-file=/var/log/mysql/sql_row.log
key_buffer_size=1M
read_buffer_size=4M
read_rnd_buffer_size=2M
table_open_cache=1024
table_definition_cache=1024
table_open_cache_instances=64
thread_cache_size=512
sort_buffer_size=16M
join_buffer_size=64M
bulk_insert_buffer_size=64M
tmp_table_size=64M
max_heap_table_size=776M
symbolic-links=0
max_allowed_packet =512M
bind-address =0.0.0.0
innodb_file_per_table=1
innodb_buffer_pool_size=1G
innodb_buffer_pool_instances=8
innodb_buffer_pool_load_at_startup=1
innodb_buffer_pool_dump_at_shutdown=1
innodb_log_file_size=1G
innodb_log_buffer_size=32M
innodb_log_files_in_group=2
innodb_flush_log_at_trx_commit=0
innodb_lock_wait_timeout=600
innodb_autoinc_lock_mode=2
innodb_doublewrite=OFF
innodb_thread_concurrency=16
innodb_flush_method=O_DIRECT
innodb_io_capacity=2000
innodb_io_capacity_max=4000
innodb_write_io_threads=32
innodb_read_io_threads=16
innodb_purge_threads=4
innodb_page_cleaners=4
innodb_open_files=65535
innodb_max_dirty_pages_pct=50
innodb_lru_scan_depth=4000
innodb_status_file=1
innodb_change_buffer_max_size=50
innodb_open_files=10000
open_files_limit=10000
[client]
socket=/data/mysql/mysql.sock
[mysql]
socket=/data/mysql/mysql.sock
[mysqladmin]

4.7,初始化数据库

代码语言:javascript
复制
mysqld --defaults-file=/etc/my.cnf --user=mysql  --initialize basedir=/usr/local/mysql-8.0.36 --datadir=/data/mysql --lower-case-table-names=1

4.8,配置systemctl mysqld服务

vim /usr/lib/systemd/system/mysqld.service

代码语言:javascript
复制
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# 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=/usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

4.9,启动mysql服务

代码语言:javascript
复制
启动mysqld服务
systemctl start mysqld
查看mysqld服务状态
systemctl status mysqld
开机启动mysqld服务
systemctl   enable  mysqld

5,登录MySQL

在MySQL初始化(initialize)完成后会自动为MySQL的root用户生成一个随机初始化密码,记录在MySQL的error.log文件中

(1)查找初始化密码

代码语言:javascript
复制
grep password /var/log/mysql/mysql.log

(2)登录数据库

代码语言:javascript
复制
mysql -uroot -p

(3)修改root密码

初始化密码登录MySQL后只能执行修改密码的操作,其它任何操作是不能执行的,使用以下命令修改密码

代码语言:javascript
复制
alter user 'root'@'localhost' identified by "123456";
flush privileges;

6,配置数据库用户权限

查看user表中用户远程登录授权,host字段是localhost,说明用户只能本地登录

代码语言:javascript
复制
select host,user,plugin from mysql.user;

设置数据库远程连接

代码语言:javascript
复制
update mysql.user set host='%' where user='root';
刷新权限
FLUSH PRIVILEGES;

7,更新用户账户密码的存储方式 默认使用caching_sha2_password

代码语言:javascript
复制
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

MySQL 8.0 官方初始化文档

https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html

MySQL 软件包 glibc 版本选择

rhel7以及之后的操作系统一般都同时支持了glibc2.12与glibc2.17,rhel 8系列已经可以支持到glibc2.28,统信uos-server-20-1060e最低2.2.5到最高2.28各个版本的支持。

查看系统支持的GLIBC库列表,可以执行如下命令:

代码语言:javascript
复制
strings /usr/lib64/libc.so.6 | grep GLIBC

补充说明

mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz与mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz两个版本,区别如下:

mysql-8.0.28-linux-glibc2.17-x86_64-minimal.tar.xz是最小化编译二进制版本,其中不包括一系列debug所用到的mysqld_debug可执行文件,并且mysqld也不是静态编译,而是动态链接库方式编译的,所以它的体积更小,但需要操作系统中有其运行所需要的2.17的动态链接库。

mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz是完整编译的二进制版本,其中包括debug所需的mysqld_debug可执行文件,并且mysqld是静态编译,而非动态链接库方式编译的,所以它的体积更大,但不需要操作系统提供动态链接库即可运行。

新年前最后一篇收官文章,提前祝各位朋友新年快乐,龙年吉祥,2024年发财致富,大展宏图,一切皆如愿!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档