1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 龙芯电脑编译安装mysql5.7详解

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

时间:2019-02-09 10:31:24

相关推荐

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

关与作者更多博客请访问云里云外开源社区

文章目录

编译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发行版本)#查看CPUcat /proc/cpuinfo

一、下载源码

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

Mysql官网下载地址

删除centos自带数据库

使用以下命令查找出安装的mysql软件包和依赖包:rpm -pa | grep mysql

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

mysql80-community-release-el7-1.noarchmysql-community-server-8.0.11-1.el7.x86_64mysql-community-common-8.0.11-1.el7.x86_64mysql-community-libs-8.0.11-1.el7.x86_64mysql-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.gzcd cmake-3.15.0-rc1

2.2、配置、编译、安装

./configure --prefix=/usr/local/cmakemakemake 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/srcwget 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 \ 配置文件(f)目录 (貌似没用,配置文件依然在/etc/f)

-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/datachown -R mysql:mysql /usr/local/mysql

7、修改配置文件(根据自己的情况来配置)

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

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

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

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

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

然后使用vim修改配置文件

[mysqld]port=3306server-id=1basedir=/usr/local/mysqldatadir=/usr/local/mysql/datasocket=/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

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

reboot #重启计算机:

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

netstat -na | grep 3306

启动成功!!

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

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

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

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

vim /etc/f[mysqld]skip-grant-tables

10.2重启mysql

/etc/init.d/mysqld restart

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

mysqlmysql >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 -ppasswordmysql>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的数据展示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。