搞了一整天,终于搞定了,记录一下。
一、背景
项目的原因,基于JeecgBoot开发的系统需要国产化支持,这就需要在电脑上安装MySQL等支撑软件。
国产化项目的操作系统多是麒麟系统,我的系统如下:
arm64架构。
系统自带JDK,接下来就安装MySQL。
二、下载MySQL
1、官网
从官网下载,下载地址:https://downloads.mysql.com/archives/community
2、下载MySQL
(1)查看系统版本
查看系统信息,命令如下:
uname -a
我的系统信息如下:
从中可以看到,体系架构是arm64。
(2)查看glibc版本
命令如下:
ldd --version
我的版本如下:
选择版本时要用。
(3)选择合适的版本
我系统不支持rpm格式(听说麒麟的内核不是红帽,支持rpm也没意义)
MySQL8以下的MySQL都不支持arm,只能选择8的版本。
支持arm的,“Operating System”只能选择“Linux - Generic”。
我电脑的ldd版本是2.23,“OS Version”不支持高版本的2.28,只能选择glibc 2.17的,如下图:
下载后复制进麒麟电脑。
三、解压与安装
1、解压
命令如下:
tar -xvf mysql-8.0.36-linux-glibc2.17-aarch64.tar.xz mysql
2、移动到合适的目录
原先移到“/opt/service/mysql”目录,有各种问题,估计是权限导致的,折腾了一整天。
最终选择了如下方案,移到“/usr/local/mysql”目录,命令如下(必要的时候加上sudo):
mv mysql /usr/local/mysql
3、创建用户
(1)创建MySQL用户组
groupadd mysql
(2)创建用户
useradd -r -g mysql mysql
4、创建数据目录
创建MySQL保存数据用的目录,命令如下:
mkdir -p /data/mysql
对目录授权,命令如下:
chown mysql:mysql -R /data/mysql
5、创建配置
(1)创建配置文件
命令如下:
vim /etc/my.cnf
内容如下:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid# character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
(2)保存
内容录入完成,换Esc键,再输入“:wq”,回车保存。
6、初始化
进入MySQL目录:
cd /usr/local/mysql/bin/
初始化命令如下:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始密码,命令如下:
sudo cat /data/mysql/mysql.err
如下图:
7、设置开机启动
将mysql.server放到“/etc/init.d”目录下即可,命令如下:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
8、启动服务
(1)启动MySQL
启动命令如下:
systemctl start mysql
(2)查看状态
查看命令如下:
systemctl status mysql
执行结果如下图:
9、修改密码
前面的密码是随机生成的,需要登录MySQL修改。
(1)登录MySQL
登录MySQL的命令如下:
# 切到bin目录下
./mysql -u root -p
输入密码回车即可,如下图:
(2)修改密码
分别执行以下SQL语句,如下图:
# MySQL8.0之后用以下语句修改密码
ALTER USER 'read_user'@'localhost' IDENTIFIED BY '123456';
以上命令将密码设为了“123456”。
10、非本机访问
其他电脑访问本机的MySQL,需要放权。
登录MySQL后,执行以下语句即可:
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
11、扩展
如果不想每次都到bin目录下使用mysql命令,执行以下命令即可:
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
参考资料:
Linux安装MySQL5.7_mysqllinux安装-CSDN博客
国产银河麒麟操作系统+飞腾CUP安装运行环境+ARM64架构(一、Mysql部署)_mysql arm64-CSDN博客
超详细MySQL安装教程(麒麟系统)_麒麟系统安装mysql-CSDN博客