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`服务后,会自动为`MySQL`的`root`用户生成一个随机初始化密码,并在`MySQL`的`errorlog`文件中记录下来,我们要找到它并用它登录`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安装和配置](https://blog.csdn.net/weixin_43102784/article/details/122696078)

相关推荐
heart000_12 小时前
MySQL事务与锁机制详解:确保数据一致性的关键【MySQL系列】
数据库·mysql
一眼青苔2 小时前
MySQL 如何判断某个表中是否存在某个字段
数据库·mysql
天空之城夢主3 小时前
MySQL 全量、增量备份与恢复
数据库·mysql·oracle
依稀i1236 小时前
MySQL连接报SSL错误
数据库·mysql·ssl
kaede6 小时前
MySQL权限详解!
数据库·mysql
萝卜白菜。7 小时前
关于TongWeb数据源兼容mysql驱动的注意事项
java·mysql
进击的CJR7 小时前
MySQL 8.0 OCP 英文题库解析(十一)
mysql·adb·开闭原则
郝同学的测开笔记8 小时前
深入解析:如何优雅计算时间区间内的有效时长
后端·mysql·测试
平平无奇。。。10 小时前
Mysql库的操作和表的操作
linux·数据库·mysql
天天摸鱼的java工程师11 小时前
CTO新项目直接上MySQL 8.0,老系统仍是5.7
java·后端·mysql