mysql 介绍和安装

MySQL 介绍和安装

什么是数据?

网站的图片,文章视频等都可以称之为数据

数据库管理系统(DBMS)

RDBMS :关系型
NoSQL :非关系型
NewSQL:分布式型

笔试 : 请你列举熟悉的数据库产品?

RDBMS : Oracle ,MySQL ,MSSQL ,PG
NoSQL : Redis ,Mongo ,ES
NewSQL : TiDB (PingCap), Spanner(Google),OceanBase(Alibaba),PolarDB(aliyun)

面试 : 你们公司用了哪些数据库产品?

MySQL,Redis,MongoDB,ES
引出 版本 MySQL 5.7.20
引出 公司 数据库架构
引出 公司 备份策略
引出 公司 遇到的故障和性能问题
总结: ....

MySQL 软件分支

Oracle MySQL
MariaDB
PerconaDB
云数据(RDS MySQL 腾讯DB等)

MySQL的企业版本选择

企业主流版本

5.6==5.6.34 5.6.36 5.6.38 5.6.40
5.7==5.7.18 5.7.19 5.7.20 5.7.24

MySQL RC apl beta 不要选择,一定选择的是GA
关于版本GA时间
尽量记录两个版本的具体GA时间
5.6.38, 5.7.20 , 20170913

企业版本新环境建议

5.7 版本 GA 6-12 月版本 偶数版

MySQL 5.7.26 二进制版规划和部署

规划:

硬件环境
服务器型号cpu核心数内存大小硬盘大小
DELL R720CPU28MEM*128G,RAID108600G SAS
系统环境Centos 7.6.1810 , kernel 3.10.0-957.el7.x86_64
网络规划

eth0 : 10.0.0.51/24
Hostname: db01

存储规划

/dev/sdb 20G

实施

创建相关目录
[root@db01 ~]# mkdir /application           ----> 软件的存放目录
[root@db01 /]# mkdir /data/3306/data -p     ----> 数据的存放位置
创建用户
[root@db01 /]# useradd -s /sbin/nologin -M mysql
上传软件并解压处理

上传解压(略.)

[root@db01 /application]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
数据初始化(创建系统数据)
[root@db01 ~]# rpm -qa|grep maria
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@db01 ~]# yum  remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y

[root@db01 ~]# vim /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@db01 ~]# mysql -V
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/3306/data
书写配置文件
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=oldguo[\\d]>
EOF
准备启动脚本
# chown -R mysql.mysql /data/* /application/mysql/*
# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld 
[root@db01 ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/db01.err'.
SUCCESS! 
使用systemd管理mysql
cat > /etc/systemd/system/mysqld.service <<EOF
[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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

注意:将原来模式启动mysqld先关闭,然后再用systemd管理。

systemctl  start/stop/restart/status   mysqld

安装过程中的细节说明

初始化命令
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/3306/data

作用: 生成系统数据到/data/3306/data中

-rw-r----- 1 mysql mysql       56 Aug  5 12:33 auto.cnf
-rw-r----- 1 mysql mysql     3159 Aug  5 12:38 db01.err
-rw-r----- 1 mysql mysql        6 Aug  5 12:38 db01.pid
-rw-r----- 1 mysql mysql      419 Aug  5 12:33 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Aug  5 12:38 ibdata1
-rw-r----- 1 mysql mysql 50331648 Aug  5 12:38 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Aug  5 12:33 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Aug  5 12:38 ibtmp1
drwxr-x--- 2 mysql mysql     4096 Aug  5 12:33 mysql
drwxr-x--- 2 mysql mysql     8192 Aug  5 12:33 performance_schema
drwxr-x--- 2 mysql mysql     8192 Aug  5 12:33 sys

参数说明:
--initialize-insecure # 启用非安全模式,进行数据初始化
--initialize # 启用安全模式,进行数据初始化
5.7 版本以后,加强了用户密码安全管理的功能
(1) 密码长度
(2) 密码复杂度
(3) 初始化时自动生成密码

扩展:
5.6 在初始化的方式

/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3306/data
启动方式说明

systemd (centos7)

cat > /etc/systemd/system/mysqld.service <<EOF
[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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

sys-V (centos6)

service xxx  start stop restart status 

同主机版本升级(扩展)

备份

略.

安装8.0软件到新位置

[root@db01 /application]# mv mysql-8.0.16-linux-glibc2.12-x86_64 mysql8

停原库

[root@db01 /application]# systemctl stop mysqld

修改已有配置

环境变量

[root@db01 ~]# vim /etc/profile 
export PATH=/application/mysql8/bin:$PATH

source /etc/profile
[root@db01 ~]# mysql -V

配置文件

[root@db01 ~]# vim /etc/my.cnf
[mysqld]
user=mysql
#basedir=/application/mysql
basedir=/application/mysql8
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=oldguo[\\d]>

启动脚本

[root@db01 ~]# vim /etc/systemd/system/mysqld.service 

8.0以前版本,需要进行数据升级(此步骤在8.0版本可省略)

mysql_upgrade  

恢复原环境

简单的管理操作

[root@db01 ~]# mysqladmin -uroot -p password 123
[root@db01 ~]# mysql -uroot -p

5.7 以前:

oldguo[mysql]>select user,host ,password from mysql.user;

5.7 以后:

oldguo[mysql]>select user,host ,authentication_string from mysql.user;

MySQL安装报错整理

错误1:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

报错原因:缺少libao-devel包
解决方法:yum install -y libaio-devel

错误2:

[root@mysql /data/mysql/data]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-07-25T13:17:21.338642Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-07-25T13:17:21.341533Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2019-07-25T13:17:21.341574Z 0 [ERROR] Aborting

报错原因:/data/mysql/data下目录下有文件(mysql的保护措施)
解决办法:清空/data/mysql/data !!!只在全新环境情况,

错误3:

[root@mysql /application/mysql/support-files]# ./mysql.server start
Starting MySQL.sed: -e expression #1, char 19: unknown option to `s'
Logging to '/data/mysql/data/mysql.err'.
.... ERROR! The server quit without updating PID file (/data/mysql/data/mysql.pid).

解决方法:查看错误日志/data/mysql/data/mysql.err
/etc/my.cnf配置文件编写错误(参数改错了)

导致MySQL数据库无法启动的原因

without updating PID 类似错误
查看日志:data/mysql/data/主机名.err 找[ERROR] 中括号是ERROR的

可能原因:
/etc/my.cnf 路径不对等
/tmp/mysql.sock 文件修改过 或 删除过
数据目录权限不是mysql
参数改错了

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值