龙芯电脑编译安装mysql5.7详解

您所在的位置:网站首页 龙芯处理器可以装win7吗 龙芯电脑编译安装mysql5.7详解

龙芯电脑编译安装mysql5.7详解

2023-10-17 00:27| 来源: 网络整理| 查看: 265

文章目录 编译mysql一、下载源码二、准备安装其他需要软件(龙芯平台上cmake和gcc不需要变动,如果是windows的虚拟机要安装高版本mysql才需要变)1、cmake2、重新安装gcc高版本3、配置、编译、安装4、报错误5、数据库用户6、创建数据存放目录并修改权限7、修改配置文件(根据自己的情况来配置)8、初始化数据库并安装ssl9、复制启动脚本、启动10、修改mysql密码(忘记密码)

编译mysql

本文在龙芯Loongson-3A3000版上编译mysql5.7,操作系统是中标麒麟(龙芯版)

NeoKyLin Linux Desktop 7.0_U2 (Loongson)。由于需要移植的数据库是mysql5.7,但龙芯的芯片是基于MIPS微指令集扩展的,与Windows的x86架构不匹配,所以绝对不能直接从Mysql官网上下载,但Windows的虚拟机是可以直接下载的。这里提供一些查看硬件与软件的指令

#查看内核版本 uname -a #linux 系统版本的方法 lsb_release -a #(此命令适用于所有的Linux发行版本) cat /etc/redhat-release #(此方法只适合Redhat系的Linux) cat /etc/issue #(此命令适用于所有的Linux发行版本) #查看CPU cat /proc/cpuinfo 一、下载源码

这里官网给出了两种版本,一个是带boost一个是不带的,这次先尝试编译带boost库的mysql

Mysql官网下载地址 在这里插入图片描述 在这里插入图片描述

删除centos自带数据库 使用以下命令查找出安装的mysql软件包和依赖包:rpm -pa | grep mysql

如果有的话,可能的显示结果和操作方法如下

mysql80-community-release-el7-1.noarch mysql-community-server-8.0.11-1.el7.x86_64 mysql-community-common-8.0.11-1.el7.x86_64 mysql-community-libs-8.0.11-1.el7.x86_64 mysql-community-client-8.0.11-1.el7.x86_64 #使用以下命令依次删除上面的程序 yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;find / -name mysql

如果有的话,可能的显示结果和操作方法如下``

/etc/logrotate.d/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/selinux/targeted/tmp/modules/100/mysql /var/lib/mysql /var/lib/mysql/mysql /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql

使用rm - rf 删除所有的

rm -rf /var/lib/mysql .... .... .... ....

或者尝试管道符

find / -name mysql | rm - rf

幸运的是,这里都没有安装过mysql,但是有其他的配置文件,这里查找的内容最好都删除了(大胆点哦)

由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以一定需要先卸载掉MariaDB.

使用rpm 命令查找出要删除的mariadb文件;

rpm -pa | grep mariadb #可能的显示结果如下: #mariadb-libs-5.5.56-2.el7.x86_64 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 #删除上面的程序 二、准备安装其他需要软件(龙芯平台上cmake和gcc不需要变动,如果是windows的虚拟机要安装高版本mysql才需要变) 1、cmake

先卸载之前的低版本的cmake

yum remove cmake -y

编译安装cmake

2.1、解压cmake并进入目录

tar zxf cmake-3.15.0-rc1.tar.gz cd cmake-3.15.0-rc1

2.2、配置、编译、安装

./configure --prefix=/usr/local/cmake make make install #--prefix 参数是配置cmake的安装目录

2.3、做cmake命令软连接,查看cmake版本

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake cmake --version

编译后的目录 在这里插入图片描述

2、重新安装gcc高版本

1、下载源码包

cd /usr/local/src wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz

2、进入gcc目录,安装gcc依赖库

cd gcc ./contrib/download_prerequisites

在这里插入图片描述

在这里插入图片描述

../configure --prefix=/usr/local/gcc-8.3.0 --enable-languages=c,c++ --disable-multilib

这个操作时间太长了,经历了将近2小时后放弃。

开始使用yum来按照

通过安装devtoolset来提升版本

使用 sudo yum install centos-release-scl 来安装centos-release-scl

安装devtoolset:sudo yum install devtoolset-8-gcc

激活安装的devtoolset;scl enable devtoolset-8 bash

然后用gcc -v检查一下gcc的版本

注意:这种方式安装后每次重启gcc的版本可能会变成原来低版本的。重新输入激活安装的语句,再次检查gcc版本就好。或者可以将bin目录下的gcc换成高版本的。

3、配置、编译、安装

在mysql的安装目录下建立一个bld目录

mkdir bld #进入bld目录 cd bld #然后执行以下命令

cmake:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装根目录 -DMYSQL_DATADIR=/data/3306/data \ 数据存储目录 -DSYSCONFDIR=/data/3306 \ 配置文件(my.cnf)目录 (貌似没用,配置文件依然在/etc/my.cnf) -DWITH_MYISAM_STORAGE_ENGINE=1 \ 编译myisam存储引擎,默认的存储引擎,不加也可以 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 支持InnoDB存储引擎,这个也是默认安装的 -DWITH_MEMORY_STORAGE_ENGINE=1 \ 支持MEMORY引擎 -DWITH_READLINE=1 \ 使用readline功能 -DMYSQL_UNIX_ADDR=/data/3306/mysql.sock \ sock存放到/data/3306目录 -DMYSQL_TCP_PORT=3306 \ 数据库端口 -DENABLED_LOCAL_INFILE=1 \ 可以使用load data infile命令从本地导入文件 -DWITH_PARTITION_STORAGE_ENGINE=1 \ 安装数据库分区 -DEXTRA_CHARSETS=all \ 支持所有字符集 -DDEFAULT_CHARSET=utf8 \ 默认字符集 -DDEFAULT_COLLATION=utf8_general_ci \ 设置默认效验字符集排序规则,要和DDEFAULT_CHARSET一起用 -DWITH_BOOST=boost 从MySQL 5.7.5开始Boost库是必需的 然后就是make和make install

以下是我的输入

cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DSYSCONFDIR=/etc \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=/usr/local/src/mysql-8.0.20/boost \ -DFORCE_INSOURCE_BUILD=0 \ -DCMAKE_CXX_COMPILER=/usr/bin/g++ \ -DDEFAULT_CHARSET=utf8

注意:cmake这步特别重要,需要着重看DWITH_BOOST=自己mysql源码下的boost目录(第一个就行)

DCMAKE_CXX_COMPILER=这个填写自己的g++目录。可以使用whereis g++。找到usr/bin/下面的。一定要测试一下这个g++是哪个版本的,如果编译mysql8必须是5以上的高版本的

然后(这步不需要网络)

make 或者make -j4 (开启四个进程去编译,但不要超过自己电脑的处理器数量,用上面查看CPU的命令) make install 4、报错误

更多的错误解决方式请参照解决方案

5、数据库用户 useradd -s /sbin/nologin mysql 6、创建数据存放目录并修改权限 mkdir /usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql 7、修改配置文件(根据自己的情况来配置)

这里我找不到自己的配置文件在哪

从Oracle官方了解到:mysql5.7.18 开始不在二进制包中提供 my-default.cnf 文件。

修改配置文件的目的是为了下一步初始化的操作,我们可以在下一步通过命令行来实现(也就是说可以跳过这部)。

但对于更低版本的有如下方式寻找

#首先查找mysqld,这里我是找不到的,但可以直接去安装目录的bin下寻找 which mysqld #第二步,先输入自己的mysqld的完整目录 /usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'

然后使用vim修改配置文件

复制代码

[mysqld] port=3306 server-id=1 basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/mysql.sock [client] socket=/usr/local/mysql/mysql.sock

这里提供一个更完整配置文件介绍

复制代码

在这里插入图片描述

在这里插入图片描述

我的这步出错了。socket后面写成mysql的可执行文件了,直接导致mysql可执行文件不能使用。第二章图看到mysql可执行文件变为紫色

这步查找了为什么mysql可执行文件不能使用

1.设置到系统路径下

2.在本目录下使用./

3.确认命令格式是否正确

4.查找命令权限。ls -al和file(file是查找文件类型的)

在这里插入图片描述

在编译每一步完成后最好都加上快照。实验得出,在挂起状态下快照,占用空间更少。

重新make(这步速度快的话大概一小时左右),然后继续配置

在这里插入图片描述

接着make install(这步速度很快,几分钟就好 )

8、初始化数据库并安装ssl

如果上一步配置了配置文件的话,这里使用这个命令

/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data /usr/local/mysql/bin/mysql_ssl_rsa_setup 9、复制启动脚本、启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld /etc/init.d/mysqld start

设置开机自启

先将/usr/local/mysql/mysql/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld

cp /usr/local/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #赋予可执行权限: chmod +x /etc/init.d/mysqld #添加为服务: chkconfig --add mysqld #查看服务列表: chkconfig --list

img

看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:chkconfig --level 345 mysqld on

reboot #重启计算机:

再次查看服务列表或者查看3306端口号

netstat -na | grep 3306

img

启动成功!!

10、修改mysql密码(忘记密码)

登录mysql后直接执行更改命令,如果不行的话执行后面的

#先配置环境变量 #在/etc/profile中添加: export PATH=$PATH:/usr/local/MySQL/bin就OK alter user 'root'@'locahost' identified by 'admin123‘;

10.1在配置文件中的[mysqld]下加入skip-grant-tables(在[mysqld]范围内任意行加入都可以)

vim /etc/my.cnf [mysqld] skip-grant-tables

10.2重启mysql

/etc/init.d/mysqld restart

10.3登录数据库后,修改密码为空。

mysql mysql >use mysql; mysql >update user set authentication_string="" where user='root'; mysql >flush privileges; mysql > exit; #大家可以使用下面的语句测试是否修改

在这里插入图片描述

10.4在配置文件中删除skip-grant-tables并重启mysql

/etc/init.d/mysqld restart

10.5登录mysql,修改密码

mysql -uroot -ppassword mysql>alter user 'root'@'locahost' identified by 'admin123‘; mysql>flush privileges; mysql>exit;

这里修改密码出现了问题,尝试了好几种修改密码的语句。最后问题出在mysql8的密码政策改变了,密码必须满足

### 密码必须包含两个大写字母 、特殊符号、 字母、 数字

特殊字符可以是@

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'RootPwd@123456';

在这里插入图片描述

以上就是mysql的数据展示



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3