CentOs7.3 安装 MySQL 5.7.19 二进制版本
CentOs7.3 安装 MySQL 5.7.19 二进制版本
参考官网 - 使用通用二进制文件在Unix / Linux上安装MySQL
采用二进制方式免编译安装MySQL,适合各类MySQL产品系列,不需要复杂的编译设置和编译时间等待,直接解压下载的软件包,初始化即可完成MySQL的安装和启动.
1.准备工作
依赖环境
关闭防火墙
1 | $ systemctl stop firewalld.service |
MySQL依赖于libaio 库
1 | $ yum search libaio |
下载,解压,重命名
通常解压在 /usr/local/mysql
把mysql-5.7.19-linux-glibc2.12-x86_64
文件夹,重命名成mysql
,这样就凑成/usr/local/mysql
目录了
1 | $ cd /opt/ |
解压目录内容
bin
mysqld服务器,客户端和实用程序
data
日志文件,数据库
docs
MySQL手册信息格式
man
Unix手册页
include
包含(标题)文件
lib
库
share
其他支持文件,包括错误消息,示例配置文件,用于数据库安装的SQL
2.安装MySQL
1. 新建用户组和用户
1 | $ cd /usr/local/mysql/ |
2. 创建目录并授权
1 | $ mkdir data mysql-files |
3. 初始化MySQL
1 | $ bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up |
注意密码
4. mysql 临时密码
[注意]root@localhost生成临时密码:
;b;s;)/rn6A3
,也就是root@localhost:
后的字符串
1 | 2017-08-26T03:23:35.368366Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). |
5. 生成RSA私钥,可以跳过此步骤
mysql_ssl_rsa_setup
需要openssl
支持,用于启用数据量ssl连接,需要进一步配置。
1 | $ bin/mysql_ssl_rsa_setup |
6. 授予读写权限
1 | $ chown -R root . |
7. 添加到MySQL 启动脚本到系统服务
1 | $ cp support-files/mysql.server /etc/init.d/mysql.server |
3.启动MySQL服务
启动脚本有两个分别是:
/usr/local/mysql/bin/mysqld_safe
/usr/local/mysql/support-files/mysql.server
(即/etc/init.d/mysqld
)
当启动mysqld时,mysqld_safe
同时启动
mysqld_safe
监控mysqld
服务,记录错误日志,并在mysqld
因故障停止时将其重启
启动方式一
1 | $ bin/mysqld_safe --user=mysql & |
启动方式二
1 | $ service mysql.server start |
或者
1 | /usr/local/mysql/support-files/mysql.server start |
如若出现报错
1 | Starting MySQL.2017-08-26T07:31:24.312411Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. |
给日志目录授予读写权限
1 | $ mkdir /var/log/mariadb |
4.登录MySQL
1 | $ /usr/local/mysql/bin/mysql -uroot -p |
如果不知道密码
密码在,安装MySQL步骤 4 ,有提到,怎么找初始化临时密码
如若出现报错
1 | Enter password: |
故障分析
查看mysql实例的状态
1 | $ netstat -ntlp | grep 3306 |
查看my.cnf关于socket的配置
1 | $ more /etc/my.cnf |grep sock |
解决方法,修改/etc/my.cnf
1 | $ vi /etc/my.cnf |
修改 [mysqld]
组下的 socket
路径,我是选择注释掉,加一行为tmp/mysql.soc
1 | [mysqld] |
重启MySQL 服务
1 | $ service mysql.server start |
再次登录
1 | $ /usr/local/mysql/bin/mysql -uroot -p |
如果不知道密码
密码在,安装MySQL步骤 4 ,有提到,怎么找初始化临时密码
设置MySQL密码
登陆成功后,设置MySQL密码
1 | mysql> ALTER USER 'root'@'localhost' identified by 'mima'; |
或者
1 | mysql> set password=password("mima"); |
刷新权限
1 | mysql> flush privileges; |
查看mysql.user表中存在哪些帐户 以及它们的密码是否为空:
MySQL 5.7.6起,使用这个语句:
1 | mysql> SELECT User, Host, HEX(authentication_string) FROM mysql.user; |
开启远程登录
关闭防火墙
1 | $ systemctl stop firewalld.service |
以权限用户root登录
1 | $ /usr/local/mysql/bin/mysql -uroot -p |
1 | mysql> use mysql; |
第1行:选择mysql库
第2行:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第3行:刷新MySQL的系统权限相关表
或者
1 | mysql> grant all privileges on *.* to 'root'@'%' identified by 'mima' with grant option; |