4.银河麒麟V10(ARM) 离线安装 MySQL

1. 系统版本

plain 复制代码
[root@ga-sit-cssjgj-db-01u ~]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Lance)

Kernel:
4.19.90-52.39.v2207.ky10.aarch64

Build:
Kylin Linux Advanced Server
release V10 (SP3) /(Lance)-aarch64-Build23/20230324
#################################################
[root@ga-sit-cssjgj-db-01u ~]#

2. MySQL 8.0.40版本下载

直接官网下载:

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

选择版本:

下载不了请移步到百度网盘

通过网盘分享的文件:mysql-8.0.40-1.el8.aarch64.rpm-bundle.tar

链接: https://pan.baidu.com/s/1etUFFGVO_8VLc7o58W3cOw?pwd=uwsf 提取码: uwsf

el8表示的是如CentOS 8,非麒麟版本的基本上都是el7版本,请核实你的版本在进行下载

3. 安装MySQL

3.1. 删除原有的mariadb

先查看一下是否已经安装了

plain 复制代码
rpm -qa | grep mysql
rpm -qa | grep mariadbrpm -e --nodeps mariadb-libs
rpm -e mariadb-server --nodeps
yum -y remove mysql*
yum -y remove mariadb*

删除mariadb,命令:

plain 复制代码
rpm -e --nodeps mariadb-libs

rpm -e mariadb-server --nodeps

3.2. 解压缩mysql离线安装包

[root@ga-sit-cssjgj-db-01u app]# tar xvf mysql-8.0.40-1.el8.aarch64.rpm-bundle.ta

逐个安装,命令如下:

必须安装

plain 复制代码
[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-common-8.0.40-1.el8.aarch64.rpm

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-client-plugins-8.0.40-1.el8.aarch64.rpm

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-libs-8.0.40-1.el8.aarch64.rpm 

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-client-8.0.40-1.el8.aarch64.rpm 

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-icu-data-files-8.0.40-1.el8.aarch64.rpm

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-server-8.0.40-1.el8.aarch64.rpm

[root@ga-sit-cssjgj-db-01u app]# rpm -ivh mysql-community-devel-8.0.40-1.el8.aarch64.rpm

查看mysql

plain 复制代码
[root@ga-sit-cssjgj-db-01u app]# rpm -qa |grep mysql

mysql-community-libs-8.0.40-1.el8.aarch64
mysql-community-server-8.0.40-1.el8.aarch64
mysql-community-icu-data-files-8.0.40-1.el8.aarch64
mysql-community-client-plugins-8.0.40-1.el8.aarch64
mysql-community-devel-8.0.40-1.el8.aarch64
mysql-community-client-8.0.40-1.el8.aarch64
mysql-community-common-8.0.40-1.el8.aarch64
[root@ga-sit-cssjgj-db-01u app]#

3.3. 初始化mysql服务

修改配置文件建议使用去除注释精简版本配置

vim /etc/my.cnf

3.3.1. 去除注释精简版本

plain 复制代码
[mysqld]
innodb_buffer_pool_size = 4G

sort_buffer_size = 512M

read_rnd_buffer_size = 256M

thread_cache_size = 64

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

bind-address=0.0.0.0

lower-case-table-names=1

3.3.2. 注释版本

plain 复制代码
# 有关如何更改设置的建议,请参阅
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
# 设置读取缓存大小
innodb_buffer_pool_size = 4G

#调整排序缓存大小
sort_buffer_size = 512M

#临时表缓存大小
read_rnd_buffer_size = 256M

#线程缓存大小
thread_cache_size = 64
#
# 删除前导 # 并设置为最重要数据的 RAM 量
# 在MySQL中缓存。从专用服务器总 RAM 的 70% 开始,否则为 10%。
# innodb_buffer_pool_size = 128M
#
# 删除前导"#"以禁用二进制日志记录
# 二进制日志记录捕获备份之间的更改,并通过以下方式启用
# 违约。它的默认设置为 log_bin=binlog
# disable_log_bin
#
# 删除前导 # 以设置主要用于报表服务器的选项。
# 对于事务和快速的 SELECT,服务器默认值更快。
# 根据需要调整大小,进行实验以找到最佳值。
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# 删除前导 # 以恢复为default_authentication_plugin的先前值,
# 这将增加与旧客户端的兼容性。有关背景信息,请参阅:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 打开跳过权限检查,以方便修改密码
# skip-grant-tables

# 开启远程访问连接
bind-address=0.0.0.0

lower-case-table-names=1

3.4. 授权

chmod 644 /etc/my.cnf

3.5. 查看服务状态

命令:systemctl status mysqld

plain 复制代码
[root@ga-sit-cssjgj-db-01u app]# systemctl status mysqld

● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
[root@ga-sit-cssjgj-db-01u app]#

3.6. 启动服务

接下来要启动MySQL,通过执行以下命令启动:

systemctl start mysqld

或者使用一下方式启动

su -s /bin/bash mysql -c "/usr/sbin/mysqld --defaults-file=/etc/my.cnf"

在此我使用 systemctl start mysqld 方式启动,原因是命令行简单

启动过程并不会返回任何信息即为成功。

再次查询状态

plain 复制代码
[root@ga-sit-cssjgj-db-01u app]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-12-25 14:45:34 CST; 1min 10s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 167040 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 167133 (mysqld)
   Status: "Server is operational"
    Tasks: 40
   Memory: 926.8M
   CGroup: /system.slice/mysqld.service
           └─167133 /usr/sbin/mysqld

12月 25 14:45:22 ga-sit-cssjgj-db-01u systemd[1]: Starting MySQL Server...
12月 25 14:45:34 ga-sit-cssjgj-db-01u systemd[1]: Started MySQL Server

激活状态Active显示为active,则表示启动成功。

4. 配置MySQL

MySQL安装完成后需要对MySQL做基础配置,包括首次登录修改用户密码、数据文件位置调整、redo log大小与数量调整、undo 表空间调整、ibdata表空间调整、binlog+errorlog+slowlog+pid+socket等文件调整、性能参数调整,这些调整都可以通过修改my.cnf参数文件实现。

MySQL安装完成第一次启动MySQL服务后,会自动为MySQLroot用户生成一个随机初始化密码,并在MySQLerrorlog文件中记录下来,我们要找到它并用它登录MySQL,修改root用户密码后才能执行任何其它操作:

  • 找到初始化密码
plain 复制代码
[root@localhost MYSQL安装包]# grep password /var/log/mysqld.log

2023-07-31T06:52:18.907755Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #SL7tAyY5ih)

4.1. SL7tAyY5ih)即为初始化密码,注意是冒号后面的所有字符都是密码

  • 使用上面的初始化密码登录MySQL

[root@localhost MYSQL安装包]# mysql -uroot -p

  • 修改root密码

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

登录不了怎么办别急,早知道你输入不对密码,请先执行修改密码再进行登录,跳过此章节直接修改密码

plain 复制代码
mysql> alter user user() identified by 'LaoGeDB123!';

Query OK, 0 rows affected (0.02 sec)

密码修改成功后,执行以下命令查看MySQL基本信息:

plain 复制代码
mysql> status
--------------
mysql  Ver 8.1.0 for Linux on aarch64 (MySQL Community Server - GPL)

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

Threads: 2  Questions: 10  Slow queries: 0  Opens: 130  Flush tables: 3  Open tables: 46  Queries per second avg: 0.006
--------------

5. 修改密码

vim /etc/my.cnf

追加:skip-grant-tables

追加后如下:记得保存wq

plain 复制代码
[mysqld]
innodb_buffer_pool_size = 4G

sort_buffer_size = 512M

read_rnd_buffer_size = 256M

thread_cache_size = 64

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

bind-address=0.0.0.0

lower-case-table-names=1
#追加的内容
skip-grant-tables

重启服务:systemctl restart mysqld.service

mysql -u root -p //回车不需要密码

登录成功后执行如下注意查看plugin 是caching_sha2_password 跟别的mysql不一样别的是mysql_native_password

查看当前权限

plain 复制代码
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)

mysql>

授权远程访问

plain 复制代码
mysql> update user set host="%" where user='root';

mysql> select host,user,plugin from user;
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
4 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

你的密码:我设置为Aa123456,根据你实际的情况设置

注意:

mysql_native_password,mysql8.x版本必须使用这种模式,否则navicate无法正确连接

plain 复制代码
use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '你的密码';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;

或者使用这个方式
update user set authentication_string=password("Aa123456"),plugin='caching_sha2_password' where user='root';

将/etc/my.cnf 中的 skip-grant-tables 增加注释,重启 mysqld 服务;

如果报错ERROR 1396,请看下面

plain 复制代码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'Aa123456';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
mysql> update user set authentication_string='' where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'Aa123456';

mysql> flush privileges;

6. 常用服务器命令

启动mysql服务:

plain 复制代码
systemctl start mysqld.service

停止mysql服务

plain 复制代码
systemctl stop mysqld.service

重启mysql服务

plain 复制代码
systemctl restart mysqld.service

查看mysql服务当前状态

plain 复制代码
systemctl status mysqld.service

设置mysql服务开机自启动

plain 复制代码
systemctl enable mysqld.service

停止mysql服务开机自启动

plain 复制代码
systemctl disable mysqld.service

7.其他版本安装

参考我以前的Linux彻底卸载删除Mysql和安装mysql及docker安装和配置

相关推荐
上山的月11 分钟前
MySQL -函数和约束
数据库·mysql
zhcf14 分钟前
【MySQL】十三,关于MySQL的全文索引
数据库·mysql
丁总学Java23 分钟前
要查询 `user` 表中 `we_chat_open_id` 列不为空的用户数量
数据库·mysql
抓哇能手23 分钟前
数据库系统概论
数据库·人工智能·sql·mysql·计算机
最后一个bug2 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
KELLENSHAW3 小时前
MySQL45讲 第三十七讲 什么时候会使用内部临时表?——阅读总结
数据库·mysql
四七伵3 小时前
MySQL外键类型与应用场景总结:优缺点一目了然
mysql
core5124 小时前
flink cdc各种数据库 jar下载地址
mysql·oracle·flink·jar·oceanbase·cdc
别致的影分身5 小时前
MySQL 常用程序介绍
数据库·mysql
HD2436088366 小时前
【mysql】id主键列乱了之后,重新排序(可根据日期顺序)
数据库·sql·mysql