Centos7.5安装mysql

237 阅读4分钟

1、准备

[root@iZ9r9anrpnvfjmZ ~]# groupadd mysql
[root@iZ9r9anrpnvfjmZ ~]# useradd -g mysql mysql

2、上传mysql的解压文件mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3、解压文件

[root@iZ9r9anrpnvfjmZ ~]# cd /usr/local
[root@iZ9r9anrpnvfjmZ local]# ll
total 821192
drwxr-xr-x  7 root root      4096 Dec 12 08:40 aegis
-rw-r--r--  1 root root  10432020 Dec 12 08:47 apache-tomcat-8.5.59.tar.gz
drwxr-xr-x. 2 root root      4096 Apr 11  2018 bin
drwxr-xr-x. 2 root root      4096 Apr 11  2018 etc
drwxr-xr-x. 2 root root      4096 Apr 11  2018 games
drwxr-xr-x. 2 root root      4096 Apr 11  2018 include
drwxr-xr-x  8   10  143      4096 Mar 15  2017 jdk1.8.0_131
-rw-r--r--  1 root root 185540433 Dec 12 08:48 jdk-8u131-linux-x64.tar.gz
drwxr-xr-x. 2 root root      4096 Apr 11  2018 lib
drwxr-xr-x. 2 root root      4096 Apr 11  2018 lib64
drwxr-xr-x. 2 root root      4096 Apr 11  2018 libexec
-rw-r--r--  1 root root 644869837 Dec 12 08:49 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
drwxr-xr-x. 2 root root      4096 Apr 11  2018 sbin
drwxr-xr-x. 6 root root      4096 Dec  3  2018 share
drwxr-xr-x. 2 root root      4096 Apr 11  2018 src
[root@iZ9r9anrpnvfjmZ local]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 

4、mysql的名称太长了,重命名一下mysql-5.7.26

[root@iZ9r9anrpnvfjmZ local]# mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql-5.7.26

5、创建mysql的数据目录

[root@iZ9r9anrpnvfjmZ local]# mkdir -p /data/mysql/data
[root@iZ9r9anrpnvfjmZ local]# mkdir -p /data/mysql/log
[root@iZ9r9anrpnvfjmZ local]# touch /data/mysql/log/mysqld.log

6、修改目录权限

[root@iZ9r9anrpnvfjmZ local]# chown -R mysql /usr/local/mysql-5.7.26/
[root@iZ9r9anrpnvfjmZ local]# chgrp -R mysql /usr/local/mysql-5.7.26/
[root@iZ9r9anrpnvfjmZ local]# chown -R mysql /data/mysql/
[root@iZ9r9anrpnvfjmZ local]# chgrp -R mysql /data/mysql/

7、初始化mysql

[root@iZ9r9anrpnvfjmZ bin]# /usr/local/mysql-5.7.26/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.26 --datadir=/data/mysql/data --explicit_defaults_for_timestamp

注意:初始化mysql报错mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方案 从报错中可以看到,没有这个libaio库,所以我们把这个库装上就行了

yum install libaio -y

8、上传my.cnf 到 /etc/my.cnf,我测试是覆盖

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置mysql服务器端默认字符集
character-set-server=utf8
#设置3306端口
port = 3306
#设置mysql的安装目录
basedir=/usr/local/mysql-5.7.26
#设置mysql数据库的数据的存放目录
datadir=/data/mysql/data
#允许最大连接数
max_connections=300
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#日志文件
log-error=/data/mysql/log/mysqld.log

9、修改文件权限

[root@iZ9r9anrpnvfjmZ bin]# chmod 644 /etc/my.cnf

10、配置环境变量路径的修改

[root@iZ9r9anrpnvfjmZ bin]# vim /etc/profile
export PATH=$PATH:$JAVA_HOME:/usr/local/mysql-5.7.26/bin
export PATH=$PATH:/usr/local/mysql-5.7.26/bin
# 重置配置
[root@iZ9r9anrpnvfjmZ bin]# source /etc/profile

11、拷贝和配置启动文件

[root@iZ9r9anrpnvfjmZ mysql-5.7.26]# vim /usr/local/mysql-5.7.26/supportfiles/mysql.server
# 修改文件的路径
basedir=/usr/local/mysql-5.7.26
datadir=/data/mysql/data

[root@imcode01 bin]# cp /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysqld
[root@iZ9r9anrpnvfjmZ  bin]# chmod +x /etc/init.d/mysqld
[root@iZ9r9anrpnvfjmZ  bin]# service mysqld start

注:初始化密码从 /data/mysql/log/mysqld.log 文件中查找
2020-12-12T02:04:13.120762Z 1 [Note] A temporary password is generated for root@localhost: Lg<FN;7Y12s>

12、进入mysql输入密码即可

[root@iZ9r9anrpnvfjmZ bin]# mysql -uroot -p
Enter password: 

13、设置密码

mysql> set password = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

14、在本地连接mysql报错就是允许远程访问

解决方案

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

15、centos7开放端口或者关闭防火墙

systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙
systemctl start firewalld # 启动防火墙
systemctl disable firewalld # 禁用防火墙
systemctl enable firewalld # 启用防火墙
systemctl restart firewalld # 重启防火墙

#查看3306端口是否开启
firewall-cmd --permanent --query-port=3306/tcp
#允许外部访问3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#配置生效
systemctl restart firewalld

16、连接成功