检查mariadb,如果mariadb存在的话安装MySQL有冲突,需要先卸载mysql
- yum list installed |grep mariadb
- yum -y remove mariadb-libs.x86_64
- .........
解压:
- tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
改名为mysql-5.7.18
- cd /usr/local/
- mv mysql-5.7.18-linux-glibc2.5-x86_64/ mysql-5.7.18
在mysql-5.7.18文件夹目录下创建一个data文件夹
- cd mysql-5.7.18/
- mkdir data
创建用户执行 mysqld 命令
创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做 mydb.不推荐, 参考地址:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
- useradd mysql
初始化MySQL,切换到 mysql-5.7.18/bin 目录下执行
- cd bin/
- ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data/
-
或者把--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'
- ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data
修改 mysql 安装目录的权限
mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限, 更改所属的用户和组,是之前创建的mysql
用户。在mysql安装目录的上级(/usr/local/)位置,执行命令chown .
- cd /usr/local/
- chown -R mysql:mysql /usr/local/mysql-5.7.18/
mysql:mysq 表示文件夹的所属用户,所属组
参数说明:
R : 表示递归,更改目录中所有子文件夹的权限。
查看原目录所有者
启动MySQL
- cd /usr/local/mysql-5.7.18/bin/
- ./mysqld_safe &
使用 mysql 客户端进入 mysql
- mysql-5.7.18/bin 下执行 ./mysql -uroot -p 然后 Enter
修改 root 密码
执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:
修改mysql的密码,命令语法:alter user '用户名'@'主机域名或ip' identified by '新密码'
- alter user 'root'@'localhost' identified by '123456';
- 然后在show databases;
- 如果不修改密码,直接执行show databases;会提示你让你修改密码
授权远程访问
授权远程访问,在没有授权之前只能在本机访问msyql, 远程授权就是
mysql(这样远程客户端才能访问)
授权命令:grant
- grant all privileges on *.* to root@'%' identified by '123456';
参数:
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;
root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,[email protected]
如果客户端软件还是连接不上:检查防火墙
关闭防火墙:
- 查看防火墙状态:systemctl status firewalld
- 让防火墙可用:systemctl enable firewal --永久
- 让防火墙不可用:systemctl disable firewalld --永久
- 开启防火墙:systemctl start firewalld --会话级别
- 禁用防火墙:systemctl stop firewalld --会话级别