CentOS7安装MySQL5.7详细过程

2018-06-28  本文已影响0人  FocusBiao

1.解压安装包到/usr/local目录下

[root@localhost local]# tar -xzvf mysql-5.7.22-el7-x86_64.tar.gz
.
..
...
mysql-5.7.22-el7-x86_64/lib/libmysqlclient.so.20.3.9
mysql-5.7.22-el7-x86_64/share/install_rewriter.sql
mysql-5.7.22-el7-x86_64/share/uninstall_rewriter.sql
mysql-5.7.22-el7-x86_64/support-files/magic
mysql-5.7.22-el7-x86_64/support-files/mysql.server
mysql-5.7.22-el7-x86_64/docs/INFO_BIN
mysql-5.7.22-el7-x86_64/docs/INFO_SRC

2.讲解压文件夹名称更改为mysql,方便操作

[root@localhost local]# mv mysql-5.7.22-el7-x86_64 mysql

3.卸载本机mariadb

1.查看本机是否安装了mariadb

[root@localhost local]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64

2.卸载所有相关安装包

[root@localhost local]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3.检查是否卸载完毕

[root@localhost local]# rpm -qa|grep mariadb
[root@localhost local]# rpm -qa|grep mysql

4.创建mysql组与用户

1.检查mysql组和用户是否存在

[root@localhost local]# cat /etc/group | grep mysql
[root@localhost local]# cat /etc/passwd |grep mysql
[root@localhost local]# cd /

2.创建mysql组与用户

[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql

5.在/usr/local/mysql目录下创建data目录

[root@localhost /]# cd usr/local/mysql
[root@localhost mysql]# mkdir data

把mysql文件夹权限给mysql用户

[root@localhost mysql]# cd ..
[root@localhost local]# chown -R mysql mysql/
[root@localhost local]# chgrp -R mysql mysql/
[root@localhost local]# cd mysql/
[root@localhost mysql]# ls -l

总用量 36
drwxr-xr-x. 2 mysql mysql 4096 6月 28 09:31 bin
-rw-r--r--. 1 mysql mysql 17987 3月 4 21:40 COPYING
drwxr-xr-x. 2 mysql mysql 6 6月 28 09:36 data
drwxr-xr-x. 2 mysql mysql 55 6月 28 09:31 docs
drwxr-xr-x. 3 mysql mysql 4096 6月 28 09:31 include
drwxr-xr-x. 5 mysql mysql 229 6月 28 09:31 lib
drwxr-xr-x. 4 mysql mysql 30 6月 28 09:31 man
-rw-r--r--. 1 mysql mysql 2478 3月 4 21:40 README
drwxr-xr-x. 28 mysql mysql 4096 6月 28 09:31 share
drwxr-xr-x. 2 mysql mysql 90 6月 28 09:31 support-files

6.配置my.cnf

接下来进入/usr/local/mysql/support-files/目录下
查看是否存在my-default.cnf文件,如果存在直接copy到/etc/my.cnf文件中

1.存在my-default.cnf文件,直接拷贝

[root@localhost mysql] cp -a ./support-files/my-default.cnf /etc/my.cnf

2.不存在,自己创建

[root@localhost mysql]# cd /etc/
[root@localhost etc]# vim my.cnf
将一下内容写进该文件中
[mysql]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
port=3306
character-set-server=utf8

7.初始化数据库并记住初始密码

[root@localhost etc]# cd /usr/local/mysql
[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

2018-06-28T02:35:24.978649Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-06-28T02:35:26.544137Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-06-28T02:35:26.920614Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-06-28T02:35:27.106689Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: eaa5485a-7a7b-11e8-9834-206a8a6a0f23.
2018-06-28T02:35:27.143719Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-06-28T02:35:27.144806Z 1 [Note] A temporary password is generated for root@localhost: &Tz:BUAtR9wK(记住此密码)

8.启动服务

[root@localhost mysql]# cd bin
[root@localhost bin]# ./mysqld_safe --user=mysql &
[2] 24843
[1] 退出 127 mysqld_safe --user=mysql
[root@localhost bin]# Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
2018-06-28T02:37:28.992414Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
停住无反应,ctrl+c回到命令行

9.将mysqld服务加入开机自启动项。

[root@localhost mysql]# cd ../support-files
/support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,
[root@localhost support-files]# cp mysql.server /etc/init.d/mysql
[root@localhost support-files]# chmod +x /etc/init.d/mysql
[root@localhost support-files]# chkconfig --add mysql
[root@localhost support-files]# chkconfig --list mysql
1.查看是否加入服务
[root@localhost bin]# chkconfig --list mysql

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关

2.查看服务状态
[root@localhost bin]# service mysql status
SUCCESS! MySQL running (24919)'

10.登录mysql

[root@localhost bin]# ./mysql -u root -p
Enter password: (输入第11步生成的初始密码)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

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.

11.查询所有数据库,提示必须先修改密码

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

12.修改数据库密码

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

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.33 sec)

13.设置远程登录权限

mysql> grant all privileges on . to'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

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

mysql> quit
Bye

14.防火墙开启3306端口

centos默认使用firewalld防火墙,使用一下命令设置添加3306端口

[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@localhost bin]# systemctl start firewalld
[root@localhost bin]# firewall-cmd --reload
success

[root@localhost bin]# firewall-cmd --permanent --query-port=3306/tcp
no
[root@localhost bin]# firewall-cmd --permanent --add-port=3306/tcp
success

[root@localhost bin]# firewall-cmd --reload
success
[root@localhost bin]# firewall-cmd --permanent --query-port=3306/tcp
yes

15.远程连接

root
123456

上一篇下一篇

猜你喜欢

热点阅读