文章目录
- 1. MySQL产品线
- —1.1 分支
- 2 MySQL的企业版本选择
- —2.1 分支
- —2.2 社区版选择
- —2.3 获取数据库软件
- 3.安装mysql 5.7.28二进制版本
- —3.1 克隆 虚拟机
- —3.2 清理历史环境
- —3.3 创建用户
- —3.4 创建相关目录并授权
- —3.5 上传 5.7.28 软件至/data/app,并解压、软连接
- —3.6 设置环境变量
- —3.7 安装关键依赖软件包
- —3.8 初始化数据(建库)
- —3.9 准备启动脚本
- —3.10 准备配置文件
- —3.11 启动数据库
- —3.12 使用systemd管理mysql
- —3.13 使用systemd方式管理mysql的第2种配置方式
- —3.14 基于initialize模式,修改临时密码
- —3.15 如果启动报错,如何排查?
- —3.16 MySQL安装后的简单管理
- —3.17 查看用户密码是否设置成功
1. MySQL产品线
—1.1 分支
Oracle:MySQL官方版:默认存储引擎InooDB---首选
红帽支持的MariaDB:默认存储引擎InnoDB,tokuDB --其次
Percona Server:默认存储引擎XtraDB ---备选
2 MySQL的企业版本选择
—2.1 分支
E:企业版(收费):可以下载30天试用
C:社区版(开源)
—2.2 社区版选择
免费服务期限:第1-5年
扩展服务期限:第6-10年
公司主流的是:
5.7:一般建议升级到最新版本5.7.18-5.7.30,最好是双数版
5.6:一般建议选择GA 6-12月区间,5.6.34-max,最好是双数版本
8.0:一般建议使用8.0.18以上版本,8.0版本其实就是5.8,5.7之后是8.0其实是oracle策略的问题.
源码包类型:source code(源码包).tar.gz 可以自己定制一些功能(二次开发数据库)
面试题:公司用什么版本数据库? 具体什么小版本号?
5.6 : 5.6.34,5.6.36,5.6.38
5.7 : 5.7.18,5.7.20,5.7.22,5.7.28,5.7.30
8.0:8.0.18
—2.1 分支
E:企业版(收费):可以下载30天试用 C:社区版(开源)
—2.2 社区版选择
免费服务期限:第1-5年 扩展服务期限:第6-10年 公司主流的是: 5.7:一般建议升级到最新版本5.7.18-5.7.30,最好是双数版 5.6:一般建议选择GA 6-12月区间,5.6.34-max,最好是双数版本 8.0:一般建议使用8.0.18以上版本,8.0版本其实就是5.8,5.7之后是8.0其实是oracle策略的问题. 源码包类型:source code(源码包).tar.gz 可以自己定制一些功能(二次开发数据库) 面试题:公司用什么版本数据库? 具体什么小版本号? 5.6 : 5.6.34,5.6.36,5.6.38 5.7 : 5.7.18,5.7.20,5.7.22,5.7.28,5.7.30 8.0:8.0.18
—2.3 获取数据库软件
https://downloads.mysql.com/archives/community/
二进制:简单方便
YUM:推荐官方yum,因其他yum源安装,数据相关产品yum安装不安全
编译安装:二次开发,功能嵌入等
3.安装mysql 5.7.28二进制版本
—3.1 克隆 虚拟机
IP:10.0.0.51/24
hostname:db01
防火墙关闭
selinux关闭
环境:Linux发行版本CentOS7.5
—3.2 清理历史环境
[root@db01 ~]# rpm -qa|grep mariadb
yum remove -y mariadb-libs
\rm -rf /etc/my.cnf*
—3.3 创建用户
useradd mysql
useradd -s /sbin/nologin -M mysql
-s
表示指定用户所用的shell,此处为/sbin/nologin
,表示不登录。 -M
表示不创建用户主目录。 -g
表示指定用户的组名为mysql
。 最后的mysql
表示用户名。
—3.4 创建相关目录并授权
mkdir -p /data/app /data/3306/data /data/3306/logs
chown -R mysql.mysql /data
mysql -V
—3.5 上传 5.7.28 软件至/data/app,并解压、软连接
cd /data/app
tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql
—3.6 设置环境变量
vim /etc/profile
# 添加最后一行
export PATH=/data/app/mysql/bin:$PATH
#生效配置:
source /etc/profile
—3.7 安装关键依赖软件包
yum install -y libaio-devel
—3.8 初始化数据(建库)
/data/app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data
命令作用:
将数据启动所需要的系统数据(/data/3306/data)
参数介绍:
--initialize-insecure 初始化核心参数(必加)
--user=mysql 初始化用户和组
--basedir=/data/app/mysql 软件安装目录
--datadir=/data/3306/data 数据存放位置
彩蛋1:
5.7 版本初始化参数介绍:
--initialize-insecure :不安全的初始化
说明:
初始化完成后是无密码的。
--initialize : 安全的初始化方式
说明:
1. 自动生成临时密码,第一次使用时需要修改此密码
2. 4种密码复杂度,12位。
彩蛋2:
5.7 初始化命令:
/data/app/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data
5.6初始化区别()
/data/app/mysql56/scripts/mysql_install_db --user=mysql --basedir=/data/app/mysql --datadir=/data/3306/data
—3.9 准备启动脚本
cp /data/app/mysql/support-files/mysql.server /etc/init.d/mysqld
—3.10 准备配置文件
[root@db01 data]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
—3.11 启动数据库
[root@db01 data]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@db01 data]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
—3.12 使用systemd管理mysql
[root@db01 data]# chkconfig --add mysqld
[root@db01 data]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
[root@db01 data]# systemctl start mysqld
[root@db01 data]# mysql
[root@db01 data]# ps -ef |grep mysqld
root 17275 1 0 16:00 ? 00:00:00 /bin/sh /data/app/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-file=/data/3306/data/db01.pid
mysql 17416 17275 4 16:00 ? 00:00:00 /data/app/mysql/bin/mysqld --basedir=/data/app/mysql --datadir=/data/3306/data --plugin-dir=/data/app/mysql/lib/plugin --user=mysql --log-error=db01.err --pid-file=/data/3306/data/db01.pid --socket=/tmp/mysql.sock
root 17448 16288 0 16:00 pts/1 00:00:00 grep --color=auto mysqld
[root@db01 data]# netstat -tulnp |grep 3306
tcp6 0 0 :::3306 :::* LISTEN 17416/mysqld
[root@db01 data]# systemctl stop mysqld
[root@db01 data]# netstat -tulnp |grep 3306
ss -lnp|grep 330
—3.13 使用systemd方式管理mysql的第2种配置方式
[root@xiaoyong support-files]#vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
—3.14 基于initialize模式,修改临时密码
[root@db01 data]# mysqladmin -uroot -p password 123
Enter password:初始密码空
—3.15 如果启动报错,如何排查?
[root@db01 data]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/db01.err'.
. ERROR! The server quit without updating PID file (/data/3306/data/db01.pid).
vim /data/3306/data/db01.err
---》 从后往前排查 [ERROR]信息。
2020-06-29T07:32:32.533458Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2020-06-29T07:32:32.533512Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2020-06-29T07:32:32.533523Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2020-06-29T07:32:33.139530Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-06-29T07:32:33.139840Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-06-29T07:32:33.140017Z 0 [ERROR] Failed to initialize builtin plugins.
2020-06-29T07:32:33.140055Z 0 [ERROR] Aborting
---》 得到结果: 权限问题
—3.16 MySQL安装后的简单管理
[root@xiaoyong ~]# mysql -uroot -p
—3.17 查看用户密码是否设置成功
5.6版本:
select user,password,host from mysql.user;
5.7版本:
select user,authentication_string,host from mysql.user;
如果记不得部分命令,方法:
desc mysql.user;
用户和密码只能本地登陆,远程无法访问,默认mysql不允许远程登陆,因为没有相关的用户被授权.
-s
表示指定用户所用的shell,此处为/sbin/nologin
,表示不登录。 -M
表示不创建用户主目录。 -g
表示指定用户的组名为mysql
。 最后的mysql
表示用户名。