Linux系统mysql8源码安装(适用任何linux,包括麒麟v10)

# 先删除自带的mysql
rpm -qa | grep mariadb
rpm -qa | grep mysql
# 找到后(--nodeps忽略依赖进行删除)
rpm -e --nodeps 包名

1.下载安装包 (https://dev.mysql.com/downloads/mysql/8.0.html?os=2)
centosRed Hat Enterprise Linux / Oracle Linux
如果使用rpm,可以参看:https://ssword.cn/f/view-4-34be7f7e9e90443e8f34436279c3ec78.html
如果使用源码编译,则继续往下看。

其他linux的系统选Linux - Generic
选择适合的 cpu版本,系统位数,glibc版本。
需要注意的是,glibc版本选高了,可能导致初始化异常。
以麒麟v10 Linux为例子,其只能安装
mysql-8.0.34-linux-glibc2.17-aarch64.tar.gzglibc2.17ARM64如果使用
mysql-8.0.34-linux-glibc2.28-aarch64.tar.gzglibc2.28ARM64就会在初始化时报异常:error while loading shared libraries: libcrypto.so.3: ELF load command alignment not page-aligned


2.解压安装包

# 解压
tar -zxvf mysql-8.0.34-linux-glibc2.17-aarch64.tar.gz

# 重命名为mysql8
mv mysql-8.0.34-linux-glibc2.17-aarch64 mysql8
mv mysql8 /opt/

3.创建用户组并授权
# 创建用户组
groupadd mysql

# 创建用户
useradd -g mysql mysql

# 授权
chown -R mysql.mysql /opt/mysql8

4.初始化数据(chown需要每个文件夹搞一下,不知道为啥...)
# 创建数据存放目录
mkdir /data/mysql/data
mkdir /data/mysql/logs
chown -R mysql.mysql /data/mysql
chown -R mysql.mysql /data/mysql/data
chown -R mysql.mysql /data/mysql/logs

# 初始化数据
初始化前新建文件/etc/my.cnf,添加如下内容
[mysqld]
basedir=/opt/mysql8
datadir=/data/mysql/data
port=3306
log-error=/data/mysql/logs/error.log
# 忽略表名大小写(仅当初始化数据时设置有效)
lower_case_table_names=1
# 开启慢查询日志 
slow_query_log=1
# 指定慢查询日志位置
slow_query_log_file=/data/mysql/logs/slow-query.log
# 设置慢查询时间阈值,单位为秒
long_query_time=3

然后
cd /opt/mysql8/bin/
sudo ./mysqld --user=mysql --basedir=/opt/mysql8 --datadir=/data/mysql/data --lower_case_table_names=1 --initialize

# 记录临时密码,一般控制台最后一行,也可以在/data/mysql/logs/error.log查询 内容如下:
A temporary password is generated for root@localhost: :yAw,yD+u2*0

5.添加mysqld到系统服务
# 复制命令到 /etc/init.d/目录
cp -a /opt/mysql8/support-files/mysql.server /etc/init.d/mysql

# 修改 mysql 中变量: basedir & datadir
vim /etc/init.d/mysql
....
basedir=/opt/mysql8
datadir=/data/mysql/data
....

#受权&添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql

# 启动服务(如果报log-error set to '/data/mysql/logs/error.log', however file don't exists,帮他新建一个error.log就好了)
service mysql start

# 查看服务状态
service mysql status

6. 建立软链接,方面使用(可选)
ln -s /opt/mysql8/bin/mysql /usr/bin

7.修改密码
# 进入mysql命令行,输入临时密码
mysql -uroot -p

#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

# 生效
flush privileges;

# 修改远程访问 可选(如果远程连不上,看下配置文件里的bind-address是不是0.0.0.0)
use mysql;
update user set host='%' where user='root';
flush privileges;


备注:
1 .错误:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方法:

# 安装缺少依赖
yum install libaio-devel.x86_64
2.错误: 3680 - Failed to create schema directory '****' (errno: 2 - No such file or directory)

产生原因:创建完数据库,手动把datadir移动到其他地方

解决方法:(权限不足)

# 修改文件拥有者(当mysql是以mysql用户启动时修改)
chown -R mysql.mysql /data/mysql/data

# 文件权限
chmod 640 文件名

# 文件夹权限
chmod 750 文件夹名
3 .错误:mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解决方法:

# 建立软链接
ln -s /lib64/libtinfo.so.6 /lib64/libtinfo.so.5

版权声明:本文为CSDN博主「dubhe_zhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dubhe_zhao/article/details/125387728

 

发布者:songJian   点击数:485   发布时间:2023-08-17 12:31:03   更新时间:2024-01-09 17:09:54
正在加载评论...
相关文章