linux(Centos7)源码包安装mysql 5.7

1、下载mysql源码包地址:https://downloads.mysql.com/archives/community/
在这里插入图片描述

这里选择64位的源码包。
鼠标移到右边的" Download " 上鼠标右击,复制其 “复制链接地址”,在linux系统中使用wget 进行下载源码包。
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

[root@izbp16lt03725eftczcz9wz home]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

解压源码包:tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

[root@izbp16lt03725eftczcz9wz home]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

将减压后的源码包移动到/usr/local/ 目录下,并重命名为mysql:

[root@izbp16lt03725eftczcz9wz home]# mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

创建mysql用户组和用户并修改权限

[root@izbp16lt03725eftczcz9wz home]# groupadd mysql
[root@izbp16lt03725eftczcz9wz home]# useradd -r -g mysql mysql

创建数据目录并赋予权限

[root@izbp16lt03725eftczcz9wz home]# mkdir -p  /data/mysql             
[root@izbp16lt03725eftczcz9wz home]# chown mysql:mysql -R /data/mysql   

创建并配置my.cnf文件:
vim my.cnf

[root@izbp16lt03725eftczcz9wz home]# vim my.cnf

内容如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

在这里插入图片描述
basedir=/usr/local/mysql :我们的源码包路径
datadir=/data/mysql : 我们存放mysql数据文件路径

初始化数据库

进入mysql源码包的bin目录:
cd /usr/local/mysql/bin/

[root@izbp16lt03725eftczcz9wz /]# cd /usr/local/mysql/bin/
[root@izbp16lt03725eftczcz9wz bin]# pwd
/usr/local/mysql/bin

初始化mysql:

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

这里我初始化失败:

[root@izbp16lt03725eftczcz9wz bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

出现该问题首先检查该链接库文件有没有安装:

rpm -qa | grep libaio   

运行该命令后发现系统中无该链接库文件。使用命令:yum install libaio-devel.x86_64 进行安装

yum install  libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,成功初始化:

[root@izbp16lt03725eftczcz9wz bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
[root@izbp16lt03725eftczcz9wz bin]# 

查看mysql的临时密码

cat /data/mysql/mysql.err

在这里插入图片描述

启动mysql,并更改Mysql密码

先将mysql.server放到/etc/init.d/mysql中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动mysql服务:

service mysql start

在这里插入图片描述
启动成功。

修改mysql密码

在 /usr/local/mysql/bin 目录下,登录mysql

./mysql -u root -p
[root@izbp16lt03725eftczcz9wz bin]# ./mysql -uroot -p
Enter password:

这里的密码是输入上面mysql的临时密码:s=#qr!s+p08X
在这里插入图片描述
设置mysql密码,并永久生效,分别执行下面三个语句:

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;              

在这里插入图片描述
将mysql命令软连接到 /usr/bin 目录下,这样可以在任意目录下使用该命令,而不用每次都到 /usr/local/mysql/bin 目录下去。

ln -s  /usr/local/mysql/bin/mysql    /usr/bin

设置mysql远程访问的权限

这里设置为:允许任何host以root进行访问

use mysql;                                        
update user set host = '%' where user = 'root';     
FLUSH PRIVILEGES;                                    
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> 
mysql> FLUSH PRIVILEGES;  
Query OK, 0 rows affected (0.00 sec)

远程连接数据库

在这里插入图片描述
连接成功。
注意:如果是使用云服务器,需在服务器控制管理台进行添加 3306 端口的映射,由于我使用的是云服务器没有配置3306端口的访问规则,链接失败了。
提示:2003 - can’t connect to MySQL server on XXX (10060 “Unknown error”)
在这里插入图片描述

解决方法

配置3306的访问规则:
在这里插入图片描述
再次测试mysql的连接:
在这里插入图片描述
成功远程连接mysql。
记录一次mysql的坎坷安装过程。

参考资料:
https://blog.csdn.net/qq_37598011/article/details/93489404

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值