局域网基于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 测试远程登录正常。