2023-11-20 MySQL ARM64 银河麒麟

背景

MySQL是常用数据库,Windows安装比较容易,笔者也有记录。现在国产化系统银河麒麟中安装,不同的是软件安装包不容易下载。一是安装的方式,再一个是MySQL本身的版本,网上很多文档说明其实都是对的,但是为什么那么多都不一样呢?就是MySQL本身的版本差异比较大,这些差异笔者也不是很清楚,但是不要用8和5.7的差异非常大,8即使安装的很顺利,在使用过程也会很多坑,导致我宁愿卸载8,也要重新安装5.7。这里就不过多说题外话。

下载

MySQL官网只有8以上才有ARM版,也就是5.7的ARM版安装包在官网是下载不到的,华为源里面有提供,笔者下载的是5.7.27。

https://repo.huaweicloud.com/kunpeng/yum/el/7/aarch64/Packages/database/
2023-11-20 MySQL ARM64 银河麒麟_第1张图片
2023-11-20_102831.jpg

安装

先卸载主机中已有的老版本MySQL

systemctl status mysqld
查看是否已有MySQL服务,如果有就先停掉,否则卸载了MySQL但是之前服务启动的pid文件还在,后面就会有错误。
rpm -qa|grep mysql
查看MySQL安装文件,把列表所有的安装包都删除掉
rpm -e --nodeps xxx
确保查询后没有MySQL安装包
whereis mysql
find / -name mysql
查看MySQL相关文件和文件夹
rm -rf xxx
删除上述查找到所有MySQL相关文件
rpm -ivh mysql-5.7.27-1.el7.aarch64.rpm
安装MySQL安装包
2023-11-20 MySQL ARM64 银河麒麟_第2张图片
2023-11-20_103521.jpg

配置文件

有的版本rpm安装完成后在/etc下面会生成my.cnf配置文件,但是此版本安装后没有生成,那么我们就自己创建一个,在/etc创建my.cnf文件。

安装后会MySQL安装目录为/usr/local/mysql,根据安装目录我们在配置文件中相关路径会配置在这个位置

新创建的文件需要给权限才能编辑和使用,我们一般要编辑文件就给777权限,但是这里的配置文件不能直接给777,否则在运行时会有错误,此配置文件不能给这么高的操作权限,我们可以给644

chmod 644 /etc/my.cnf

编辑配置文件

[mysql]
default-character-set=utf8

[client]
socket = /usr/local/mysql/data/mysql.sock

[mysqld]
character-set-server=utf8
default-storage-engine=INNODB

max_connections=200

# MySQL安装路径
basedir = /usr/local/mysql
# MySQL文件存储路径
datadir = /usr/local/mysql/data
# 日志文件路径
log-error = /usr/local/mysql/data/mysqld.log
# MySQL pid文件路径
pid-file = /usr/local/mysql/data/mysql.pid
# MySQL socket文件路径
socket = /usr/local/mysql/data/mysql.sock

#忽略大小写
lower_case_table_names=1

启动

进入/usr/local/mysql/bin/,执行./mysqld --initialize --console,初始化MySQL的基础数据,会创建配置文件中datadir对应的路径文件夹,并在文件夹中生成相关数据。

cd /usr/local/mysql/bin/
./mysqld --initialize --console

这里生成了 /usr/local/mysql/data文件夹,但是这个文件夹还没有权限,在启动MySQL时会生成pid等文件,如果没有权限就不能创建会有错误,这里需要给这个文件夹权限

chown -R mysql.mysql /usr/local/mysql/data/

执行命令启动MySQL

service mysql start
2023-11-20 MySQL ARM64 银河麒麟_第3张图片
2023-11-20_111306.jpg
# 启动MySQL
service mysql start
# 查看MySQL状态
service mysql status
# 停止MySQL
service mysql start

重启主机,查看MySQL状态是启动的,说明MySQL服务器自己配置了开机启动。

密码修改

上述安装完成后只是安装好了MySQL,但是想要登录使用时会不知道密码,在安装时有个默认密码,我需要修改成自己的密码。默认查看初始密码的路径是/var/log/mysqld.log文件,但是上述配置文件是我们自己创建的,里面的日志文件是自己配置的没有采用默认值,所以这里查看初始密码的文件在/usr/local/mysql/data/mysql.log文件。

grep 'temporary password' /usr/local/mysql/data/mysqld.log
2023-11-20 MySQL ARM64 银河麒麟_第4张图片
2023-11-20_115409.jpg

把初始密码复制出来,使用MySQL命令登录MySQL,登录进去操作时发现提示:You must reset your password using ALTER USER statement before executing this statement,这个提示说我们要修改MySQL的密码才能使用。

2023-11-20 MySQL ARM64 银河麒麟_第5张图片
2023-11-20_115503.jpg
alter USER 'root'@'localhost' IDENTIFIED BY 'root';

执行上述命令修改root的密码为root。

2023-11-20 MySQL ARM64 银河麒麟_第6张图片
2023-11-20_115650.jpg

重启MySQL服务

再使用root密码登录,可以正常使用,密码修改成功。

2023-11-20 MySQL ARM64 银河麒麟_第7张图片
2023-11-20_115758.jpg

查看编码格式

上述步骤中初始化MySQL数据时会根据配置文件设置编码格式,我们一般都用utf8,按照上述配置文件生成的就是utf8,如果不是建议重新安装,因为我也不会修改,而且即使修改了,已经存在的数据可能会变成乱码数据。

执行以下命令查看编码格式,对应结果如图就是对的。

show variables like '%character%';
show variables like 'collation%';
2023-11-20 MySQL ARM64 银河麒麟_第8张图片
2023-11-22_144746.jpg

设置允许远程连接

MySQL安装后默认是只允许本地连接,远程想通过ip连接会有错误,我们在这里可以修改为允许远程连接。

执行SQL,查看内容

//切换到MySQL数据库
use mysql;
//在user表内查询host和user2列
select host,user from user;
2023-11-20 MySQL ARM64 银河麒麟_第9张图片
2023-11-22_145426.jpg

可以看到user=root的host=localhost,说明root用户只能在本地登录,我们修改host为%通配符,表示所有地方都可以连接。

执行SQL

update user set host='%' where user='root';
2023-11-20 MySQL ARM64 银河麒麟_第10张图片
2023-11-22_145820.jpg

重启MySQL,外部设备可以连接MySQL。

2023-11-20 MySQL ARM64 银河麒麟_第11张图片
2023-11-22_145936.jpg

你可能感兴趣的:(mysql,adb,数据库)