CentOS7.0安装MySQL 5.7

时间:2021-04-30 19:22:10

1、卸载mariadb和安装gcc+等依赖

#列出所有被安装的rpm package

rpm -qa | grep mariadb

#卸载

rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64

错误:依赖检测失败:

        libmysqlclient.so.18()(64bit) (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

        libmysqlclient.so.18(libmysqlclient_18)(64bit) (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

#强制卸载,因为没有--nodeps

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

安装gcc+等依赖

yum -y update gcc

yum -y install gcc+ gcc-c++

2、下载安装包

http://dev.mysql.com/downloads/mysql/#downloads

推荐下载通用安装方法的TAR

3、检查库文件是否存在,如有删除。

[root@localhost Desktop]$ rpm -qa | grep mysql

mysql-libs-5.1.52-1.el6_0.1.x86_64

[root@localhost ~]$ rpm -e mysql-libs-5.1.52.x86_64 --nodeps

[root@localhost ~]$

4、检查mysql组和用户是否存在,如无创建。

[root@localhost ~]$ cat /etc/group | grep mysql

mysql:x:490:

[root@localhost ~]$ cat /etc/passwd | grep mysql

mysql:x:496:490::/home/mysql:/bin/bash

以上为默认存在的情况,如无,执行添加命令:

[root@localhost ~]$groupadd mysql

[root@localhost ~]$useradd -r -g mysql mysql

//useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

5、解压TAR包,更改所属的组和用户

[root@localhost ~]$ cd /usr/local/

[root@localhost local]$ tar xvfz mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz

[root@localhost local]$ mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql

[root@localhost local]$ chown -R mysql mysql/

[root@localhost local]$ chgrp -R mysql mysql/

[root@localhost local]$ cd mysql/

 

6、安装和初始化数据库

mysql5.7之前版本初始化配置表命令:
 script/mysql_install_db --user=mysql --basedir=/Ultrapower/test/mysql --datadir=/Ultrapower/test/mysql/data/
 --user  启动mysql的用户
 --basedir  mysql安装目录
 --datadir  mysql数据仓库目录

mysql5.7:

[root@rhel5-32 mysql]# mkdir data  

[root@rhel5-32 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

执行完上面的命令后,自动生产mysql数据库的root账号密码如下:

2017-09-11T06:28:15.963482Z 1 [Note] A temporary password is generated for root@localhost: oCxw1UxeXX>p

7、mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。

[root@rhel5-32 mysql]# chown -R root .  

[root@rhel5-32 mysql]# chown -R mysql data  

8、复制配置项

MySQL 5.7.18以后的版本没有my-default.cnf也能运行,所以此步骤省略。

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

 {mysql}/ support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,

 否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务

 还需要把mysql.serverbasedir的相关路径,改为自定义的路径,默认路径是/usr/local/mysql

[plain] view plain copy

#cp mysql.server /etc/init.d/mysql  

#chmod +x /etc/init.d/mysql  

 mysql注册为开机启动的服务

[plain] view plain copy

#chkconfig --add mysql  

 查看是否添加成功

[plain] view plain copy

[root@rhel5-32 mysql]# chkconfig --list mysql  

mysqld  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭  

10、配置环境变量 添加如下内容

shell> vi /etc/profile   

export MYSQL_HOME="/usr/local/mysql"

export PATH="$PATH:$MYSQL_HOME/bin"

Shell> source /etc/profile   

或执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

11mysql服务的开启和关闭

#/etc/init.d/mysql start   或者   serivce mysql start  或者  bin/mysqld_safe&  

#/etc/init.d/mysql stop    或者   service mysql stop   或者  bin/mysqladmin -uroot -p  

 注:在bin/mysqld_safe&这个启动脚本里已默认设置--user=mysql;在脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进  程转入后台,  当前shell  可进行其他操作。

 bin/mysqladmin -uroot -p  (注意此时的root是指mysqlroot用户)

12、开启防火墙

mysql 3306端口的外部访问 CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口

shell>  firewall-cmd --zone=public --add-port=3306/tcp --permanent

shell>  firewall-cmd --reload  #重启防火墙

13、登录mysql,修改密码(在启动mysql后)

[root@DB-Server tmp]# mysql -u root -p

Enter password: (此处输入安装时随机生成的密码)

修改密码:

mysql> SET PASSWORD = PASSWORD('root');

14、添加远程访问权限

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> update user set host = '%' where user = 'root';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host, user from user;

重启mysql服务

[root@mwj /]# service mysql restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!