Centos7 MySql安装步骤

检查mariadb,如果mariadb存在的话安装MySQL有冲突,需要先卸载mysql

  1. yum list installed |grep mariadb
  2. yum -y remove mariadb-libs.x86_64 
  3. .........

解压:

  1. tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

改名为mysql-5.7.18 

  1. cd /usr/local/
  2. mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql-5.7.18

在mysql-5.7.18文件夹目录下创建一个data文件夹

  1. cd mysql-5.7.18/
  2. mkdir data

创建用户执行  mysqld  命令 
创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做  mydb.不推荐, 参考地址:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 

  1. useradd mysql

初始化MySQL,切换到 mysql-5.7.18/bin 目录下执行

  1. cd bin/
  2. ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data/
  3. 或者把--initialize改成--initialize-insecure不生成随机密码

参数说明: 
--initialize 初始化 mysql,创建 mysql 的 root, 随机生成密码。记住密码,登录 msyql 使用。 
--user 执行 msyqld 命令的 linux用户名 
--datadir : mysql 数据文件的存放位置,目录位置参照本机的设置。 
--basedir : msyql 安装程序的目录,目录位置参照本机的设置。 
该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,请先拷贝出来记住,后续第一次登
录 mysql 需要使用 

启用安全功能 
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql 命令程序,mysql_ssl_rsa_setup 提供了开启数据加密功能,生成数字证书。名字为:'ca-key.pem'

  1. ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data

修改 mysql 安装目录的权限 

mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限, 更改所属的用户和组,是之前创建的mysql
用户。在mysql安装目录的上级(/usr/local/)位置,执行命令chown . 

  1.  cd /usr/local/
  2. chown -R mysql:mysql /usr/local/mysql-5.7.18/

mysql:mysq 表示文件夹的所属用户,所属组 
参数说明: 
R : 表示递归,更改目录中所有子文件夹的权限。 
查看原目录所有者 

启动MySQL 

  1. cd /usr/local/mysql-5.7.18/bin/
  2. ./mysqld_safe &

使用 mysql 客户端进入 mysql

  1. mysql-5.7.18/bin 下执行  ./mysql -uroot -p 然后 Enter


修改 root 密码 
执行sql语句  show databases; 第一次使用将会提示修改mysql的root用户密码:
修改mysql的密码,命令语法:alter user '用户名'@'主机域名或ip' identified by '新密码' 

  1. alter user 'root'@'localhost' identified by '123456'; 
  2. 然后在show databases;
  3. 如果不修改密码,直接执行show databases;会提示你让你修改密码

授权远程访问 
授权远程访问,在没有授权之前只能在本机访问msyql, 远程授权就是
mysql(这样远程客户端才能访问) 
授权命令:grant 

  1. grant all privileges on *.* to root@'%' identified by '123456'; 

参数: 
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表; 
root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,[email protected] 


如果客户端软件还是连接不上:检查防火墙
关闭防火墙:

  1. 查看防火墙状态:systemctl status firewalld
  2. 让防火墙可用:systemctl enable firewal --永久
  3. 让防火墙不可用:systemctl disable firewalld --永久
  4. 开启防火墙:systemctl start firewalld --会话级别
  5. 禁用防火墙:systemctl stop firewalld --会话级别

猜你喜欢

转载自blog.csdn.net/qq_39669058/article/details/85038810