国产Linux麒麟系统-安装mysql8.0

沙与砂的华尔兹 2024-07-13 15:37:05 阅读 87

1.查看系统信息

<code>cat /etc/os-release

2.查看并卸载自带的mariadb

<code>#查看现有版本,mariadb和mysql都要查:

rpm -qa|grep mariadb

rpm -qa|grep mysql

<code>rpm -e --nodeps mariadb-connector-c-3.0.6-7.ky10.x86_64

再次检查下有没有mysql的文件,并将一下文件删除,否则会出错

删除后如下下图

3.官网下载MYSQL安装包

mysql官网下载地址

        3.1选择对应的mysql版本

因为Kylinos Server V10 就是基于CentOS 8开发而来,所以选择 Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Bundle

        3.2上传至服务器并解压

        在此之前最好先将磁盘挂载可以参考一下文章

        Linux挂载磁盘教程

        

<code>tar xvf mysql-8.0.37-1.el8.x86_64.rpm-bundle.tar

解压如下

在大多数情况下,您需要安装 <code>mysql-community-server, mysql-community-clientmysql-community-client-pluginsmysql-community-libsmysql-community-icu-data-filesmysql-community-common, 以及 mysql-community-libs-compat .

这里解释一下各个安装文件

• mysql-community-serverMySQL 服务端,包含了运行 MySQL 服务所需的文件和程序。• mysql-community-clientMySQL 客户端,用于连接到 MySQL 服务器• mysql-community-client-pluginsMySQL 客户端的插件,这些插件提供了额外的功能或特性。• mysql-community-libs包含 MySQL 客户端和服务器使用的共享库文件。• mysql-community-icu-data-files包含 MySQL 使用的 ICU(International Components for Unicode)数据文件。• mysql-community-common包含 MySQL 客户端和服务器共享的一些常用文件和配置。• mysql-community-libs-compat提供与旧版本 MySQL 库的兼容性支持(MySQL8.0.36已移除该安装包)

4.安装Mysql

安装顺序如下

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查看版本信息

4.1编辑my.cnf文件

<code>vi /etc/my.cnf

以下是注释和修改点,按需修改和添加

<code>datadir=/data/mysql #数据文件目录

socket=/data/mysql.sock #socket文件路径

pid_file=/data/mysqld.pid #MySQL服务器进程ID文件的路径

port=6612 #端口

log_error=/data/log/mysqld.log #运行日志路径

server_id = 168710 #MySQL实例唯一标识

log_bin = /data/binlog/mysql-binlog #根据安装路径设置存放binlog存放位置

binlog_expire_logs_seconds=2592000 #默认二进制日志过期时间为 2592000 秒,等于 30 天(30*24*60*60 秒)

innodb_redo_log_capacity = 2048M #Redo Log的总容量,8.0.30版本引入

innodb_log_buffer_size = 32M #日志文件的缓冲区的大小

innodb_flush_log_at_trx_commit = 1 #默认设置为1,是完全符合 ACID 标准所必需的。日志在每次事务提交时写入并刷新到磁盘

sync_binlog = 1 #每次事务提交时同步二进制日志

open_files_limit = 65535 #能打开的文件数上限

table_open_cache = 1024 #指定一次InnoDB可以打开的最大文件数

innodb_buffer_pool_size = 12G #内存的80% ,比如系统内存为16G(通过free -g查看),设置为12G

innodb_purge_threads = 8 #控制回滚段(Undo Segment)清理线程的数量.设置为CPU核数(通过lscpu查看),比如8核,就设置为8

innodb_write_io_threads = 8 #控制写入 I/O 操作的线程数,值同上

innodb_read_io_threads = 8 #控制读取 I/O 操作的线程数,值同上

innodb_max_undo_log_size = 1G #undo阈值,默认值1G

lower_case_table_names = 1 #表名不区分大小写

max_allowed_packet = 1G #消息缓冲区大小

character_set_server = utf8mb4 #字符集

transaction_isolation = REPEATABLE-READ #事务隔离级别,可重复读。默认值为 REPEATABLE-READ.

slow_query_log = 0 #慢查询功能(0/OFF:关闭;1/ON:开启)

long_query_time = 2 #超过2秒的sql输出到日志

max_connections = 2000 #最大连接数

log_bin_trust_function_creators=1 #允许任何用户(包括没有 SUPER 特权的用户)创建或修改存储过程、函数创建,根据实际情况设置

sql_mode="NO_ENGINE_SUBSTITUTION" #服务器SQL模式,模式会影响MySQL支持的SQL语法及其执行的数据验证检查。根据实际情况设置code>

group_concat_max_len=1024000 #GROUP_CONCAT函数允许的最大结果长度(以字节为单位)。默认值为 1024.

skip-name-resolve=OFF #是否在检查客户端连接时解析主机名(OFF/ON),根据实际情况设置

log_timestamps=SYSTEM #日志的显示时间和系统时间保持一致

[client]

socket=/data/mysql.sock #socket文件路径

设置开机自动启动

<code>systemctl start mysqld #启动 MySQL

systemctl stop mysqld #关闭 MySQL

systemctl restart mysqld #重启 MySQL

systemctl status mysqld #查看 MySQL 状态

systemctl enable mysqld #设置开机自启

启动成功

查看密码

<code>cat /var/log/mysqld.log | grep root@localhost

使用MySQL命令登录后首先更改下密码

<code>alter user root@localhost identified by 'xxxxxxxx';

创建数据库

CREATE DATABASE xxxx_project;

导入数据库

mysql -u root -p xxxx< xxxx.sql

创建远程用户

create user '新用户名'@'允许的来源ip' identified by '新用户的密码';

查看是否创建成功

select host, user, plugin from user;

注意如果出现远程无法查看数据库的情况,就要给新建的帐号添加权限

将以下几项调整为Y

命令如下

<code>update user set Select_priv='Y' where user='root' and host='你的IP';code>

update user set INSERT_priv='Y' where user='root' and host='你的IP';code>

update user set UPDATE_priv='Y' where user='root' and host='你的IP';code>

update user set Delete_priv='Y' where user='root' and host='你的IP';code>

update user set Create_priv='Y' where user='root' and host='你的IP';code>

或者全部授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的IP' WITH GRANT OPTION;

最后记得刷新下更新

FLUSH PRIVILEGES;



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。