局域网基于linux麒麟v10搭建mysql

因为是局域网 缺失很多工具,要先安装yum源 自行百度吧。

curl -o yum.sh http://169.254.169.253:10080/KylinOS/yum.sh

sh yum.sh
yum clean all
yum makecache

1、执行安装依赖

sudo yum install -y wget vim gcc gcc-c++ make cmake ncurses ncurses-devel bison openssl openssl-devel boost-devel libtirpc libtirpc-devel

yum install gcc gcc-c++ cmake ncurses-devel bison openssl-devel rpcgen
 

后续安装

安装前的环境准备工作和说明
1.系统版本
MySQL:mysql-boost-5.7.36.tar.gz

mysql下载路径:/opt/tools

mysql安装路径:/app/mysql


2.说明

源码编译安装    

一、清理删除旧版本安装包残留
1.查找mysql相关安装
[root@localhost ~]# rpm -qa | grep -i mysql
[root@localhost ~]# yum list installed | grep mysql   // 第二种方式yum,用这个方式

若查询到mysql,则卸载

[root@localhost ~]# rpm –e {包名},如:

[root@localhost ~]# rpm -e mysql-community-common-xxxx-1.el7.x86_64

# 如果使用上面命令删除时,提示有依赖的其它文件,则用如下命令只删除mysql套件

[root@localhost ~]# rpm -e --nodeps {包名}

[root@localhost ~]# rpm -e --nodeps 强制接卸(--nodeps 不检查依赖关系;--force 强制安装)

[root@localhost ~]# rpm删除时如果有依赖关系,可以用yum remove + 包名来删除

2.查看系统Mariadb
[root@localhost ~]# rpm -qa | grep -i mariadb
[root@localhost ~]# yum list installed | grep mariadb  // 第二种方式yum,用这个方式

若查询到mariadb,则卸载

[root@localhost ~]# rpm -e --nodeps {mariadb包名},如:

[root@localhost ~]# rpm -e --nodeps mariadb-libs-xxxxx-1.el7.x86_64
 


3.查找老版本mysql相关的安装目录命令
[root@localhost ~]# find / -name mysql

若查找到相关目录使用命令:rm –rf {目录名},如:

[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost ~]# rm -rf /usr/lib64/mysql

删除卸载完之后再检查确认下

[root@localhost ~]# find / -name mysql
[root@localhost ~]# rpm -qa | grep -i mysql
[root@localhost ~]# rpm -qa | grep -i mariadb

如没有查到,则卸载删除完成

4.确认清理安装环境
[root@localhost ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
[root@localhost ~]# userdel -r mysql
[root@localhost ~]# rm -rf /etc/my*
[root@localhost ~]# rm -rf /var/lib/mysql
 

下载和解压源码包
1.源码包相关说明:
mysql官方下载地址:​ ​https://downloads.mysql.com/archives/community/​​​

如下图,我们要源码编译安装

选择mysql-5.7.36.tar.gz或者mysql-boost-5.7.36.tar.gz(这个MySQL源码包里包含了boost)

如果选择mysql-5.7.36.tar.gz这个源码包,就必须要下载一个boost库包boost_1_59_0.tar(否则预编译时会通不过报错)。

mysql-5.7.36.tar.gz官方下载地址:

​ ​https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.36.tar.gz​​​

boost第三方下载地址:

​ ​http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz​​​

mysql-boost-5.7.36.tar.gz官方下载地址:

​ ​https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.36.tar.gz​​

注:在Linux下wget国内速度下载可能较慢,可从第三方镜像市场下载

mysql-5.7.36.tar.gz:

​ ​http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36.tar.gz​​​

boost_1_59_0.tar.gz:

​ ​http://mirrors.linuxeye.com/oneinstack/src/boost_1_59_0.tar.gz​​​(LinuxEye开源镜像)

mysql-boost-5.7.36.tar.gz:

​ ​http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.36.tar.gz​​

2.下载mysql源码包
①.在Linux下创建一个源码包下载目录:

[root@localhost ~]# mkdir /opt/tools  #创建目录
[root@localhost ~]# cd /opt/tools/ 
[root@localhost ~]# mkdir data
[root@localhost ~]# mkdir tmp
[root@localhost tools]# ls            #查看目录下文件
[root@localhost tools]# pwd           #查看该目录路径
/opt/tools
[root@localhost tools]#

②.在该目录路径下直接下载源码包:

[root@localhost tools]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.36.tar.gz

#鉴于boost在Linux中用wget不太好下载或者下载较慢,本次安装直接选择mysql-boost-5.7.36.tar.gz这个源码包比较方便,不用再下载单独的boost库包。

#我这里直接从网易镜像下载,等下载完成后,在tools目录下查看到源码包已下载好。

[root@localhost tools]# ls  
mysql-boost-5.7.36.tar.gz
[root@localhost tools]#
 

-------------从本地上传源码包到Linux-------------

解压mysql源码包
[root@localhost ~]# mkdir /opt/tools   #进入前目录,如果已在当前目录,可忽略
[root@localhost ~]# tar -zxvf mysql-boost-5.7.36.tar.gz   #解压源码包
[root@localhost ~]# mkdir /opt/tools/data    #解压源码包
[root@localhost ~]# mkdir /opt/tools/tmp   #解压源码包
[root@localhost tools]# ls   #查看到已解压好
mysql-5.7.36  mysql-boost-5.7.36.tar.gz
[root@localhost tools]# cd mysql-5.7.36/   #进入到已解压的源码包目录
[root@localhost mysql-5.7.36]# ls   #可已查到该目录下有个boost目录

boost的路径:

/opt/tools/mysql-5.7.36/boost (先记下这个路径,等下后面预编译用到)

四、源码编译安装
1.预编译(设置编译参数)
#注意是在解压好的源码包mysql-5.7.36这个路径下执行。

[root@localhost mysql-5.7.36]# cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/app/mysql/data \
-DMYSQL_UNIX_ADDR=/app/mysql/tmp/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

#以上是要设置的一些参数,比如mysql的安装目录,boost的路径等。

#根据个人需要设置安装路径,以及boost的路径。

等执行完成之后,看到如下内容,表示执行成功。

-- Configuring done
-- Generating done
-- Build files have been written to: /opt/tools/mysql-5.7.36
[root@localhost mysql-5.7.36]#

#如果 CMake 失败,为了防止使用旧的目标文件或配置信息,请运行以下命令,然后重新运行 CMake :

[root@localhost mysql-5.7.36]# make clean
[root@localhost mysql-5.7.36]# rm CMakeCache.txt
 


2.编译安装
[root@localhost mysql-5.7.36]# make && make install

#等待时间有点长,要看Linux的硬件配置和网络情况,一直要等到执行完成。

#可以使用echo $?看返回值是否为0,为0则表示正确

[root@localhost mysql-5.7.36]# echo $?
0
[root@localhost mysql-5.7.36]#

#再查看/app/mysql/目录,如果该目录下有内容,则表示mysql-5.7.36源代码包采用cmake方式安装成功了。

[root@localhost ~]# cd /app/mysql/
[root@localhost mysql]# ls
bin  docs  include  lib  LICENSE  man  mysql-test  README  README-test  share  support-files
[root@localhost mysql]#
 


五、创建mysql用户
[root@localhost ~]# groupadd mysql   # 添加组myql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin -M mysql    # 添加用户mysql到mysql组中
[root@localhost ~]# id mysql   # 查看mysql id

如下:

[root@localhost mysql]# cd
[root@localhost ~]# id mysql
id: mysql: no such user
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin -M mysql  
[root@localhost ~]# id mysql  
uid=998(mysql) gid=1000(mysql) 组=1000(mysql)
[root@localhost ~]#
 


六、创建安装目录和文件
[root@localhost ~]# mkdir -p /app/mysql  #安装目录在编译时已自动生成,可不用再创建。
[root@localhost ~]# mkdir -p /app/mysql/tmp
[root@localhost ~]# mkdir -p /app/mysql/log
[root@localhost ~]# touch /app/mysql/log/mysql.log   #创建日志文件,否则后面初始化时会报错。

#创建的tmp和log以及mysql.log根据自己需要设置,这里是配合下面的my.cnf用到。


七、修改目录权限
[root@localhost ~]# chown -R mysql:mysql /app/mysql
[root@localhost ~]# chown mysql.mysql /app/mysql/tmp
[root@localhost ~]# chown mysql.mysql /app/mysql/log/mysql.log
 


八、创建和配置my.cnf文件和环境变量
1.my.cnf配置文件
[root@localhost ~]# vim /etc/my.cnf   #编辑my.cnf文件

[mysqld]
# 安装目录
basedir=/app/mysql
# 存放数据的目录
datadir=/app/mysql/data
# 指定端口号
port=3306
#timestamp 参数开启,否则初始化时会报错
explicit_defaults_for_timestamp=1
# 指定Socket文件存放路径
socket=/app/mysql/tmp/mysql.sock
# 指定默认的字符集编码
character-set-server=utf8
# MySQL错误日志路径
log-error=/app/mysql/log/mysql.log
# 指定MySQL pid文件路径
pid-file=/app/mysql/mysql.pid
[mysql]
socket=/app/mysql/tmp/mysql.sock
[client]
socket=/app/mysql/tmp/mysql.sock

#进入vim编辑器后,按 i 键,把上面内容复制粘贴好,然后按Esc键,再输入:":wq"保存退出(双引号里面的内容,不包括双引号哦)

2.配置环境变量
两种方式,看个人喜好选择一种即可。

①.方式1

[root@localhost ~]# vim /etc/profile.d/mysql.sh   #vim编辑mysql.sh文件

export PATH=$PATH:/app/mysql/bin

#复制以上加入环境变量,vim编辑器操作见上面说明.

source /etc/profile.d/mysql.sh   #重新加载
echo $PATH   #查看环境变量
 


②.方式2

echo "export PATH=/app/mysql/bin/:$PATH" >> /etc/profile  #直接写入环境变量
source /etc/profile   #重新加载
echo $PATH   #查看环境变量
 


九、初始化数据库和启动服务
1.初始化数据库
#执行myql的安装目录下的bin目录文件,而不是下载解压的目录,为了不搞混淆,我这直接写死了bin下的完整路径。

二选一:执行一条即可

#--initialize  #生成随机的初始root密码

[root@localhost ~]# /app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/app/mysql/ --datadir=/app/mysql/data

#--initialize-insecure  #不会生成root密码,登录连接后,使用ALTER USER语句分配新的root密码。
[root@localhost ~]# /app/mysql/bin/mysqld --initialize --user=mysql --basedir=/app/mysql/ --datadir=/app/mysql/data

#这里直接选择不生成密码,等到后面登录到mysql再直接分配。

2.配置启动脚本,并启动服务​
[root@localhost ~]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld   #mysql启动关闭添加到 /etc/init.d/mysqld
[root@localhost ~]# systemctl daemon-reload   #重新加载
[root@localhost ~]# systemctl start mysqld   #启动mysql
[root@localhost ~]# systemctl stop mysqld   #关闭mysql
[root@localhost ~]# service mysqld status   #查看mysql运行状态

[root@localhost ~]# service mysqld status
ERROR! MySQL is not running
#若关闭后查看mysql没有运行

[root@localhost ~]# service mysqld status
SUCCESS! MySQL running (41629)
#若启动后查看mysql正常运行

十、登录mysq修改分配密码和查看数据库
1.首次登录
[root@localhost ~]# mysql -uroot -p
Enter password:  
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 Source distribution
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

#由于初始化时没有生成密码,首次登录要求输入密码时,直接回车后就登录到mysql了。

#在这里可以看到mysql相关的信息,比如版本,还有mysql的一些辅助信息。

2.修改密码
mysql> alter user root@localhost identified by '123456';

mysql> exit #退出后再重新用刚设置的密码就可以登录mysql了。

[root@localhost ~]# mysql -uroot -p
Enter password:
 


3.查看数据库
mysql> show databases;


至此,mysql已安装完成。

附加:配置远程登录授权
[root@localhost ~]# firewall-cmd --permanent --add-port=3306/tcp   #开放3306端口
[root@localhost ~]# firewall-cmd --reload   #重启防火墙
[root@localhost ~]# firewall-cmd --list-all   #查看防火墙
[root@localhost ~]# mysql -uroot -p   #登录到mysql
Enter password: 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;   #远程连接授权
mysql> flush privileges;   #刷新授权
mysql> exit;   #退出mysql

完成以上后,连接工具Navicat 测试远程登录正常。