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.server放到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql服务:
service mysql start
在 /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
这里设置为:允许任何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