首页 » 数据库 » MySQL » MySQL入门基础知识及部署

MySQL入门基础知识及部署

2019年7月9日 噼里啪啦酱 MySQL

[toc]

一、入门知识

1.1 优点

  • 性能卓越,服务稳定
  • 开源无版权制约,自主性强,使用成本低
  • 社区用户活跃
  • 软件体积小,安装简单,易于维护
  • 口碑效应好
  • 支持多操作系统,提供多种API、对Java、Python、PHP有很好的支持

1.2 发行版本

Alpha 内部发行版

Beta 测试版

RC 候选版

GA 稳定版

GA 稳定版的选择:
1)、5.6选择小版本是偶数的版本
2)、5.7选择小版本是偶数版,5.7.17以上版本支持高可用

1.3 MySQL产品线

产品线1

3.26版本~5.2版本:
* 正宗后代
* centos5/6中默认都是5.1版本
* centos7中默认是mariadb

5.5~5.7~8.0版本
* 借鉴社区贡献,进一步开发的版本
* 主流版本:5.5、5.6、5.7

MySQL cluster 6.0版本&更高
* 类似Oracle RAC(双主),硬件要求高
* 一般各大网站没人用

产品线2

Mariadb
PerconaDB 第三方 Xtrabackup PerconaDB

1.4 软件的命名

mysql-5.6.40.tar.gz
5---主版本号
6---发行级别
40---发行系列的版本号

二、安装方式

2.1 YUM/RPM安装

2.2 二进制安装

1.安装依赖

[root@ljcccc ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc

# 移除旧版mariadb
[root@ljcccc ~]# yum remove mariadb-libs.x86_64 

2.解压软件包

[root@ljcccc ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

3.移动到指定目录

[root@ljcccc ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.40

4.创建软连接

[root@ljcccc ~]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql

5.创建MySQL用户

[root@ljcccc ~]# useradd mysql -s /sbin/nologin -M

6.拷贝配置文件

[root@ljcccc ~]# cp /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf

7.拷贝启动脚本

#centos6系统:
[root@ljcccc ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#centos7系统----加入到system管理
[root@ljcccc ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@ljcccc ~]# systemctl daemon-reload ##重载

8.进入初始化目录并初始化

[root@ljcccc ~]# cd /usr/local/mysql/scripts
#执行初始化命令----MySQL5.6系列
[root@ljcccc ~]# ./mysql_install_db  --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

9.添加环境变量

[root@ljcccc ~]#  vim /etc/profile.d/mysql.sh
export PATH="/usr/local/mysql/bin:$PATH"
[root@ljcccc ~]#  source /etc/profile

10.编辑配置文件

[root@ljcccc ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

#binlog日志
server_id=6
log_bin=mysql-bin
binlog_format=row

port=3306
socket=/tmp/mysql.sock
log-error=/var/log/mysql.log
skip_name_resolve
character-set-server=utf8

#慢查询
slow_query_log=1
long_query_time=0.05
log_queries_not_using_indexes
slow_query_log_file=/usr/local/mysql/data/slow.log

11.启动并加入开机自启

[root@ljcccc ~]# systemctl start mysqld.service 
[root@ljcccc ~]# systemctl enable mysqld.service
[root@ljcccc ~]# systemctl status mysqld.service 

2.3 源码编译安装

1.安装依赖

[root@ljcccc ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc

2.解压软件包

[root@ljcccc ~]# tar mysql-5.6.40.tar.gz

3.生成

[root@ljcccc ~]# cd mysql-5.6.40
[root@ljcccc ~]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_EMBEDDED_SERVER=1 \
-DDOWNLOAD_BOOST=1  -DENABLE_DOWNLOADS=1 -DWITH_BOOST=/usr/local/boost

4.编译并安装

[root@ljcccc ~]# make && make install

5.创建用户

[root@ljcccc ~]# useradd mysql -s /sbin/nologin -M

6.授权

[root@ljcccc ~]# chown mysql.mysql /usr/local/mysql/ -R

7.添加环境变量

[root@ljcccc ~]#  vim /etc/profile.d/mysql.sh
export PATH="/usr/local/mysql/bin:$PATH"
[root@ljcccc ~]#  source /etc/profile

8.修改配置文件(/etc/my.cnf)

[root@ljcccc ~]# egrep -v "^#|^$" /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql             ###mysql安装位置
datadir=/usr/local/mysql/data        ###mysql数据存放位置
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql.log         ###mysql错误日志
pid-file=/var/run/mysql.pid
!includedir /etc/my.cnf.d

9.拷贝启动脚本

#centos6系统:
[root@ljcccc ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#centos7系统----加入到system管理
[root@ljcccc ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@ljcccc ~]# systemctl daemon-reload ##重载

10.初始化mysql脚本

[root@ljcccc ~]# cd /usr/local/mysql/scripts/
[root@ljcccc ~]# ./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql

11.启动加入开机自启systemctl start mysqld

[root@ljcccc ~]# systemctl start mysqld
[root@ljcccc ~]# systemctl status mysqld

三、常用SQL分类

  • DDL:数据定义语言
  • DCL:数据控制语言
  • DML:数据操作语言
  • DQL:数据查询语言

四、常用数据类型

4.1 数值类型

1.整数

TINYINT: 常用于年龄
INIT: 十位以下数字

2.浮点数

FLOAT:小型单精度(四个字节)浮点数
DOUBLE:常规双精度(八个字节)浮点数

3.定点数

DECIMAL:精确值数值

4.2 字符串类型

1.文本CHAR

固定长度字符串,最多255个字符

2.文本VARCHAR

可变长度字符串,最多为65535个字符

3.整数ENUM:由一组固定的合法值组成的枚举

由一组固定的合法值组成的枚举

4.3 时间类型

1.DATE

YYYY-MM-DD

2.TIME

hh:mm:ss

4.4 二进制类型

五、表属性

六、基础管理

七、DDL应用




说点什么
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...
Prev Post Next Post