马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
国产麒麟系统(Kylin Server V10)上装 MySQL 8.0,跟 CentOS 8 的路子基本一致,麻烦点在于系统自带 mariadb 会跟 mysql 抢文件,不先清干净后面 rpm 装一半就失败。本文记录从查系统版本、卸载 mariadb、下载对应 RPM 包、按依赖顺序安装,到改 my.cnf、起服务、建库和开远程权限的全过程。
一、先看清系统信息
cat /etc/os-release
二、查并卸载自带的 mariadb
mariadb 和 mysql 两类包都要查:
rpm -qa | grep mariadb
rpm -qa | grep mysql
看到的每个包都要卸载,用 --nodeps 强制去掉依赖:
rpm -e --nodeps mariadb-connector-c-3.0.6-7.ky10.x86_64
再去查一遍还有没有残留的 mysql 文件并删干净,否则等会儿安装会失败。
三、下载 MySQL 安装包
因为 Kylinos Server V10 是基于 CentOS 8 开发的,所以去官网下载时选 Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Bundle 这一档。
上传并解压
上传服务器后先确认磁盘挂好了(新机器记得先挂盘),再解压:
tar xvf mysql-8.0.37-1.el8.x86_64.rpm-bundle.tar
四、这几个包分别是什么
- mysql-community-server:服务端,跑 MySQL 需要的程序都在里面
- mysql-community-client:客户端,用来连服务器
- mysql-community-client-plugins:客户端插件,提供额外功能
- mysql-community-libs:客户端和服务端共用的共享库
- mysql-community-icu-data-files:MySQL 用到的 ICU 国际化数据文件
- mysql-community-common:两边共享的配置文件
- mysql-community-libs-compat:旧版本兼容库(MySQL 8.0.36 起这个包已被移除)
五、按依赖顺序安装
rpm -ivh mysql-community-common-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.37-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.37-1.el8.x86_64.rpm
装完用 mysql -V 看版本。
六、改 my.cnf
vi /etc/my.cnf
几个必须按自己环境改的点:
datadir=/data/mysql
socket=/data/mysql.sock
pid_file=/data/mysqld.pid
port=6612
log_error=/data/log/mysqld.log
server_id=168710
log_bin=/data/binlog/mysql-binlog
binlog_expire_logs_seconds=2592000
innodb_redo_log_capacity=2048M
innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit=1
sync_binlog=1
open_files_limit=65535
table_open_cache=1024
innodb_buffer_pool_size=12G
innodb_purge_threads=8
innodb_write_io_threads=8
innodb_read_io_threads=8
innodb_max_undo_log_size=1G
lower_case_table_names=1
max_allowed_packet=1G
character_set_server=utf8mb4
transaction_isolation=REPEATABLE-READ
slow_query_log=0
long_query_time=2
max_connections=2000
log_timestamps=SYSTEM
[client]
socket=/data/mysql.sock
说明两点:innodb_buffer_pool_size 给内存八成,16G 内存的机器设 12G;purge/write/read 这几个线程数按 CPU 核数给(lscpu 看),8 核就填 8。目录记得先建好,否则启动起不来。
七、服务管理与首次登录
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld
systemctl enable mysqld
首次启动的 root 随机密码在错误日志 里:
cat /var/log/mysqld.log | grep root@localhost
登录后第一件事改密码:
alter user root@localhost identified by 'xxxxxxxx';
建库、导数据:
CREATE DATABASE xxxx_project;
mysql -uroot -pxxxx < xxxx.sql
八、远程用户与授权
create user '新用户名'@'允许的来源ip' identified by '新用户的密码';
select host, user, plugin from user;
如果客户端连过来看不到库,多半是权限没给,把这几项刷成 Y:
update user set Select_priv='Y' where user='root' and host='你的IP';
update user set INSERT_priv='Y' where user='root' and host='你的IP';
update user set UPDATE_priv='Y' where user='root' and host='你的IP';
update user set Delete_priv='Y' where user='root' and host='你的IP';
update user set Create_priv='Y' where user='root' and host='你的IP';
要一把梭也可以直接全授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的IP' WITH GRANT OPTION;
最后别忘了刷新:
FLUSH PRIVILEGES;
qidao123.com企服评测-应用市场 编辑提示 |