kylin系统安装MySQL-8.0.39(二进制包安装,rpm安装)

一 系统环境

1.1查看系统版本

[root@ecs-2e51-0004 ~]# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Sword)

[root@ecs-2e51-0004 ~]# cat /proc/version
Linux version 4.19.90-25.38.v2101.ky10.x86_64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Tue Apr 2 19:32:16 CST 2024

[root@ecs-2e51-0004 ~]# hostnamectl
   Static hostname: ecs-2e51-0004
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 517f0e9e0b314922ab417b4a3662a9a1
           Boot ID: 812219ee7d73453caf56d3539821c18e
    Virtualization: kvm
  Operating System: Kylin Linux Advanced Server V10 (Sword)
            Kernel: Linux 4.19.90-25.38.v2101.ky10.x86_64
      Architecture: x86-64
 

[root@ecs-2e51-0004 ~]# nkvers 
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)

Kernel:
4.19.90-25.38.v2101.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################

1.2 卸载系统自带MySQL或MariaDB

 1.3 安装MySQL依赖包

yum install -y perl-Data-Dumper libaio libaio-devel ncurses ncurses-devel ncurses-base ncurses-libs openssl openssl-devel openssl-libs bzip2 bzip2-devel libtirpc libtirpc-devel readline readline-devel

1.4 MySQL源码包

1.5 上传安装包并解压

[root@ecs-2e51-0001 ~]# tar -xf mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz -C /usr/local/  && cd /usr/local/
[root@ecs-2e51-0001 local]#  mv mysql-8.0.39-linux-glibc2.28-x86_64 mysql-8.0.39

二 配置并启动MySQL(二进制)

2.1 拆功能键MySQL用户和用户组

[root@ecs-2e51-0002 local]# groupadd mysql
[root@ecs-2e51-0002 local]# useradd -M -g mysql -s /sbin/nologin mysql

2.2 创建MySQL数据目录

[root@ecs-2e51-0002 local]# mkdir /data/mysql/{data,log,redo,undo,arch} -p
[root@ecs-2e51-0004 ~]# chown  -R mysql: /data

2.3 创建MySQL环境变量

2.3.1创建软连接
[root@ecs-2e51-0002 local]# ln -s /usr/local/mysql-8.0.39 /usr/local/mysql

[root@ecs-2e51-0002 local]# chown -R mysql: mysql-8.0.39
2.3.2 配置环境变量
[root@ecs-2e51-0002 local]# cat /etc/profile.d/mysql.sh 
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH


[root@ecs-2e51-0002 local]# source /etc/profile.d/mysql.sh

2.3.3创建my.cnf配置文件
[root@ecs-2e51-0002 local]# cat /etc/my.cnf

[mysql]
socket=/data/mysql/data/mysqld.sock

[mysqld]
###base config###
server-id=210
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/data/mysqld.sock
pid-file=/data/mysql/data/mysqld.pid
log-error=/data/mysql/log/mysqld.log
###query config###
join_buffer_size = 128M
sort_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 8M
###open table config###
table_open_cache=2000
table_open_cache_instances=16
###connection config###
max_connections=2000
thread_cache_size=200
###binlog config###
log_bin=/data/mysql/log/binlog
log_bin_index=/data/mysql/log/binlog.index
binlog_format=ROW
max_binlog_size=1G
binlog_cache_size=16M
binlog_expire_logs_seconds=604800
enforce_gtid_consistency=ON
gtid_mode=ON
###general log config###
general_log=OFF
general_log_file=/data/mysql/log/mysqld.gnl
###slow query config###
log_output=FILE
long_query_time=1
slow_query_log=ON
slow_query_log_file=/data/mysql/log/mysqld.slow
###innodb redo log config###
innodb_log_file_size=1G
innodb_log_files_in_group=3
innodb_log_buffer_size=16M
innodb_log_group_home_dir=/data/mysql/redo
innodb_redo_log_archive_dirs=/data/mysql/arch
###innodb undo log config###
#innodb_max_undo_log_size=1G
#innodb_undo_tablespaces=2
innodb_undo_directory=/data/mysql/undo
###innodb config###
#innodb_data_file_path=ibdata1:12M:autoextend
#innodb_temp_data_file_path=ibtmp1:12M:autoextend
#innodb_temp_tablespaces_dir=./#innodb_temp/
#innodb_autoextend_increment=64
innodb_buffer_pool_size=8G
innodb_open_files=10000
open_files_limit=10000
2.3.4 初始化mysql
[root@ecs-2e51-0004 bin]# pwd
/usr/local/mysql/bin
[root@ecs-2e51-0004 bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
2.3.5 配置service启动文件
[root@ecs-2e51-0002 bin]# cat /usr/lib/systemd/system/mysqld.service

[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

[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-group-suffix=@%I $MYSQLD_OPTS
# 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

[Install]
WantedBy=multi-user.target
2.3.6 加载并启动MySQL
[root@ecs-2e51-0002 bin]# systemctl daemon-reload && systemctl start mysqld.service && systemctl enable mysqld.service && systemctl status mysqld.service 

2.4 登录MySQL,更改密码

[root@ecs-2e51-0001 bin]# grep password /data/mysql/log/mysqld.log
2024-07-26T08:21:43.651432Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 219/16GrCk3&

[root@ecs-2e51-0001 bin]# mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.39

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> alter user "root"@"localhost" identified by "密码";
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> status;
--------------
mysql  Ver 8.0.39 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:		8
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		8.0.39
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/data/mysql/data/mysqld.sock
Binary data as:		Hexadecimal
Uptime:			1 min 43 sec

Threads: 2  Questions: 7  Slow queries: 0  Opens: 148  Flush tables: 3  Open tables: 64  Queries per second avg: 0.067
--------------




三 配置并启动MySQL(rpm)

3.1 上传安装包

3.2 解压包

[root@abi local]# pwd
/usr/local

[root@abi local]# mkdir mysql

[root@abi src]# tar -xf mysql-8.0.40-1.el8.x86_64.rpm-bundle.tar -C ../mysql

[root@abi src]# cd ../mysql

kylin系统带有mariadb数据库环境,避免冲突,卸载mariadb:

    for i in $(rpm -qa | grep mariadb);do rpm -e $i --nodeps; done


[root@abi mysql]# rpm -ivh \
mysql-community-common-8.0.40-1.el8.x86_64.rpm \
mysql-community-client-plugins-8.0.40-1.el8.x86_64.rpm \
mysql-community-libs-8.0.40-1.el8.x86_64.rpm \
mysql-community-client-8.0.40-1.el8.x86_64.rpm \
mysql-community-icu-data-files-8.0.40-1.el8.x86_64.rpm \
mysql-community-server-8.0.40-1.el8.x86_64.rpm \
mysql-community-devel-8.0.40-1.el8.x86_64.rpm --nodeps



报错信息:
 
警告:mysql-community-common-8.3.0-1.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID a8d3785c: NOKEY
错误:依赖检测失败:
	pkgconfig(openssl) 被 mysql-community-devel-8.3.0-1.el8.x86_64 需要
 
 
解决方案:
yum install openssl-devel.x86_64 openssl.x86_64 -y
 
 
启动mysql:
 systemctl start mysqld; systemctl status mysqld; systemctl enable mysqld
 
 
 
查看数据库密码:
  cat /var/log/mysqld.log | grep password
 
 
 
登录之后修改密码:
mysql> alter user "root"@"localhost" identified by "密码";
# mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
mysql> FLUSH PRIVILEGES;
 
查看状态:
mysql> status;
 
 
 
开启远程访问:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '密码';
Query OK, 0 rows affected (0.01 sec)
 
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
 
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

3.3 调整lower_case_table_names参数

lower_case_table_names=1 表示 mysql 是不区分大小写的

lower_case_table_names=0 表示 mysql 是区分大小写的



解决方案:

1,未启动服务之前,在配置文件中添加此参数:
    lower_case_table_names=1


2,重新初始化mysql

[root@abi]# ll /var/lib/mysql

总用量 93640
-rw-r----- 1 mysql mysql       56  2月 26 09:26  auto.cnf
-rw-r----- 1 mysql mysql      646  2月 26 09:29  binlog.000001
-rw-r----- 1 mysql mysql       16  2月 26 09:26  binlog.index
-rw------- 1 mysql mysql     1680  2月 26 09:26  ca-key.pem
-rw-r--r-- 1 mysql mysql     1112  2月 26 09:26  ca.pem
-rw-r--r-- 1 mysql mysql     1112  2月 26 09:26  client-cert.pem
-rw------- 1 mysql mysql     1676  2月 26 09:26  client-key.pem
-rw-r----- 1 mysql mysql   196608  2月 26 09:31 '#ib_16384_0.dblwr'
-rw-r----- 1 mysql mysql  8585216  2月 26 09:26 '#ib_16384_1.dblwr'
-rw-r----- 1 mysql mysql     6341  2月 26 09:26  ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912  2月 26 09:28  ibdata1
。。。。

[root@abi lib]# mv /var/lib/mysql /var/lib/mysql_bak

[root@abi lib]# rm -rf /var/lib/mysql

[root@abi lib]# mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql  # 重新初始化mysql

[root@abi lib]# systemctl start mysqld   #  启动mysql
[root@abi lib]# systemctl status mysqld; systemctl enable mysqld  # 查看状态,设置开机自启动


查看数据库密码:
  cat /var/log/mysqld.log | grep password
 
 
 
登录之后修改密码:
mysql> alter user "root"@"localhost" identified by "密码";

mysql> FLUSH PRIVILEGES;
 
查看状态:
mysql> status;

查看参数值:
mysql> show variables like '%lower%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+
2 rows in set (0.00 sec)

MySQL 8.0.39 的Linux安装教程大致分为以下几个步骤: 1. **下载MySQL社区版**: 访问MySQL官网 (https://dev.mysql.com/downloads/mysql/),选择 "Downloads",然后找到适合您Linux发行版的二进制包。由于版本较多,请确保选择 "MySQL Server" 部分,找到对应 `mysql-8.0.39-linux-x64.tar.gz` 或类似的文件。 2. **创建数据目录**: 使用root权限打开终端,创建一个用于存储MySQL数据的目录,比如 `/var/lib/mysql`。 ```bash sudo mkdir -p /var/lib/mysql ``` 3. **解压并移动文件**: 下载完成之后,解压缩文件到指定目录,并将MySQL文件夹重命名成 `mysql8.0` 或其他便于管理的名字。 ```bash sudo tar -xvf mysql-8.0.39-linux-x64.tar.gz -C /var/lib --strip-components=1 ``` 4. **配置MySQL**: 编辑 MySQL 的配置文件 `my.cnf`,通常位于 `/etc/mysql/my.cnf` 或 `/etc/my.cnf`。设置监听地址、字符集等参数。 5. **初始化数据库**: 运行初始化脚本,生成系统表和用户密码。 ```bash cd /var/lib/mysql8.0 sudo bin/mysqld_install_db --user=mysql --ldata=/var/lib/mysql ``` 6. **启动服务**: 创建一个启动脚本并添加到开机启动项。 ```bash sudo nano /etc/init.d/mysql8.0 # 根据示例编写服务启动命令 ... sudo chmod +x /etc/init.d/mysql8.0 sudo update-rc.d mysql8.0 defaults ``` 7. **安全配置**: 完成基本安装后,建议登录作为 root 用户运行 `mysql_secure_installation` 命令,设置更强的密码和其他安全性选项。 8. **连接测试**: 使用 `mysql -u root -p` 登录新安装MySQL服务器,检查是否能正常连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值