一:MySQL基本介绍安装
一:MySQL基本介绍
1.1 MySQL安装包版本选择,潜规则
MySQL5.6:GA 6-12个月 小版本是偶数版,奇数版一般都是测试。
MySQL5.7:GA 6-12个月 小版本是偶数版,选择5.7.17以上版本 ,自带高可用(MGR)
1.2 什么是数据?
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。
1.3 为什么不使用word、excel做数据库
1.数据库可以设置索引,性能高
2.安全性能高
3.不会出现数据一致性问题
4.没法做集群
1.4 数据管理系统
DBMS(database management system)
1.存储数据
2.管理数据
1.5 数据管理系统分类
(1)关系型数据库(RDBMS)
典型产品:MySQL、Oracle、MariaDB、MSSQL
1)二维表
2)典型产品Oracle传统企业,MySQL互联网企业
3)通过SQL查询数据(结构化查询语言)
4)最大特点数据安全性方面强(ACID)
1.6 非关系型数据库(NoSQL)
典型产品:Redis、memcache、MongoDB、elasticsearch(search engine)
1)key:value存储方式
2)不是否定关系型数据库,而是做关系型数据库的补充。
3)想做老大,先学会做老二。
性能功能对比
二:MySQL安装
2.1 mysql编译安装
### 0.安装依赖
[root@db01 ~]# yum install -y cmake gcc gcc-c++ glibc ncurses-devel autoconf libaio-devel
### 1.解压
[root@db01 ~]# tar xf mysql-5.6.44.tar.gz
[root@db01 ~]# ll mysql-5.6.44
total 252
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 BUILD
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 client
drwxr-xr-x 4 7161 31415 4096 Mar 15 2019 cmake
-rw-r--r-- 1 7161 31415 23415 Mar 15 2019 CMakeLists.txt
drwxr-xr-x 3 7161 31415 21 Mar 15 2019 cmd-line-utils
-rw-r--r-- 1 7161 31415 19838 Mar 15 2019 config.h.cmake
-rw-r--r-- 1 7161 31415 40929 Mar 15 2019 configure.cmake
-rw-r--r-- 1 7161 31415 17987 Mar 15 2019 COPYING
drwxr-xr-x 2 7161 31415 312 Mar 15 2019 dbug
drwxr-xr-x 2 7161 31415 80 Mar 15 2019 Docs
-rw-r--r-- 1 7161 31415 65958 Mar 15 2019 Doxyfile-perfschema
drwxr-xr-x 4 7161 31415 229 Mar 15 2019 extra
drwxr-xr-x 4 7161 31415 4096 Mar 15 2019 include
-rw-r--r-- 1 7161 31415 333 Mar 15 2019 INSTALL
drwxr-xr-x 3 7161 31415 224 Mar 15 2019 libmysql
drwxr-xr-x 3 7161 31415 204 Mar 15 2019 libmysqld
drwxr-xr-x 2 7161 31415 221 Mar 15 2019 libservices
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 man
drwxr-xr-x 10 7161 31415 305 Mar 15 2019 mysql-test
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 mysys
drwxr-xr-x 2 7161 31415 300 Mar 15 2019 mysys_ssl
drwxr-xr-x 9 7161 31415 113 Mar 15 2019 packaging
drwxr-xr-x 11 7161 31415 187 Mar 15 2019 plugin
-rw-r--r-- 1 7161 31415 2496 Mar 15 2019 README
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 regex
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 scripts
drwxr-xr-x 2 7161 31415 6 Mar 15 2019 source_downloads
drwxr-xr-x 4 7161 31415 12288 Mar 15 2019 sql
drwxr-xr-x 5 7161 31415 4096 Mar 15 2019 sql-bench
drwxr-xr-x 2 7161 31415 155 Mar 15 2019 sql-common
drwxr-xr-x 13 7161 31415 169 Mar 15 2019 storage
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 strings
drwxr-xr-x 5 7161 31415 4096 Mar 15 2019 support-files
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 tests
drwxr-xr-x 5 7161 31415 70 Mar 15 2019 unittest
-rw-r--r-- 1 7161 31415 88 Mar 15 2019 VERSION
drwxr-xr-x 3 7161 31415 298 Mar 15 2019 vio
drwxr-xr-x 2 7161 31415 32 Mar 15 2019 win
drwxr-xr-x 11 7161 31415 4096 Mar 15 2019 zlib
# 2.生成 ./configure --prefix=/usr/local/nginx cmake 或者是 gmake
## 创建安装目录
[root@db01 ~]# mkdir /application
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.44 \ #安装目录
-DMYSQL_DATADIR=/application/mysql-5.6.44/data \ #数据目录
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.44/tmp/mysql.sock \ #socket文件目录
-DDEFAULT_CHARSET=utf8 \ #字符集
-DDEFAULT_COLLATION=utf8_general_ci \ #校验规则
-DWITH_EXTRA_CHARSETS=all \ #额外字符集
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持的存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \ #启动zlib库(压缩)
-DWITH_SSL=bundled \ #启用ssl加密
-DENABLED_LOCAL_INFILE=1 \ #启用本地导入数据支持
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 #禁用debug(一般开发会用,运维用不到)
# 3.编译
make
# 4.安装
make install
[root@db01 mysql-5.6.44]# ll /application/mysql-5.6.44/
total 44
drwxr-xr-x 2 root root 4096 Nov 30 16:12 bin
-rw-r--r-- 1 root root 17987 Mar 15 2019 COPYING
drwxr-xr-x 3 root root 18 Nov 30 16:12 data
drwxr-xr-x 2 root root 55 Nov 30 16:12 docs
drwxr-xr-x 3 root root 4096 Nov 30 16:12 include
drwxr-xr-x 3 root root 291 Nov 30 16:12 lib
drwxr-xr-x 4 root root 30 Nov 30 16:12 man
drwxr-xr-x 10 root root 4096 Nov 30 16:12 mysql-test
-rw-r--r-- 1 root root 2496 Mar 15 2019 README
drwxr-xr-x 2 root root 30 Nov 30 16:12 scripts
drwxr-xr-x 28 root root 4096 Nov 30 16:12 share
drwxr-xr-x 4 root root 4096 Nov 30 16:12 sql-bench
drwxr-xr-x 2 root root 136 Nov 30 16:12 support-files
# 5.做软链接
[root@db01 scripts]# ln -s /application/mysql-5.6.44 /application/mysql
# 6.拷贝配置文件
[root@db01 mysql-5.6.44]# cd /application/mysql-5.6.44/support-files/
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
# 7.拷贝启动脚本,延用Centos6的启动方式
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
# 8.创建mysql用户
[root@db01 scripts]# useradd mysql -s /sbin/nologin -M
# 9.初始化
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
--user: #指定用户
--basedir: #指定程序所在目录
--datadir: #指定数据目录
# 10.创建socket存放目录
[root@db01 scripts]# mkdir /application/mysql-5.6.44/tmp
# 11.授权MySQL权限
[root@db01 scripts]# chown -R mysql.mysql /application/mysql*
# 12.启动MySQL
[root@db01 scripts]# /etc/init.d/mysqld start
# 13.添加环境变量
#因为编译安装的mysql,启动命令是:/application/mysql/bin/mysql,很不方便,所以加一个环境变量
[root@db01 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"
# 14.加载环境变量
[root@db01 scripts]# source /etc/profile
mysql初始化报错:
缺少perl模块,安装autoconf可以解决
解决方式: yum install -y autoconf
mysql启动时报错:
这边注意下,以后报错:without PID File ,很正常,因为找不到PID所以无法启动,所以报错。
这边需要解决另一个报错:/tmp目录不存在
解决思路: 因为socket文件需要一个目录,如果没有这个目录会报错,所以需要创建tmp目录 解决方式: mkdir /application/mysql-5.6.44/tmp
此时依旧报错如下:
根据提示查看错误日志(直接看ERROR,不需要看NOTE)
报错原因: socket文件没有权限 解决思路: 因为编译安装的mysql启动需要socket文件,所以必须要授权mysql用户的权限 解决方式: chown -R mysql.mysql /application/mysql*
2.2 mysql二进制安装
# 1.解压
[root@db02 ~]# tar xf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
# 2.创建程序目录
[root@db02 ~]# mkdir /application
# 3.移动MySQL程序到安装目录
[root@db02 ~]# mv mysql-5.6.44-linux-glibc2.12-x86_64 /application/mysql-5.6.44
# 4. 做软链接
[root@db02 ~]# ln -s /application/mysql-5.6.44 /application/mysql
# 5.拷贝配置文件
[root@db02 ~]# cd /application/mysql/support-files/
[root@db02 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
# 6.拷贝启动脚本
[root@db02 support-files]# cp mysql.server /etc/init.d/mysqld
# 7.创建用户
[root@db02 scripts]# useradd mysql -s /sbin/nologin -M
# 8.初始化
[root@db02 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
# 9.修改启动脚本
[root@db02 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld
# 10.启动MySQL
[root@db02 scripts]# /etc/init.d/mysqld start
# 11.添加环境变量
[root@db02 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"
# 12.加载环境变量
[root@db02 scripts]# source /etc/profile
三:使用systemd管理MySQL
#编辑MySQL脚本
[root@db01 ~]# 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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#启动MySQL
[root@db01 ~]# systemctl start mysqld
#停止MySQL
[root@db01 ~]# systemctl stop mysqld
#重启MySQL
[root@db01 ~]# systemctl restart mysqld
四:二进制管理
需要在配置文件添加:
basedir=/application/mysql
datadir=/application/mysql/data
为什么?
[root@db02 mysql]# grep -r 'usr/local' ./* 你会发现,二进制安装mysql,所有的文件都会在/usr/local/mysql下
我们之前只用sed改了启动脚本的目录。所有这边条件这两行指定目录
原文地址:https://www.cnblogs.com/captain-jiang/p/12066104.html
- 【LeetCode 459】关关的刷题日记42 – Repeated Substring Pattern
- HDU 1848 Fibonacci again and again(SG函数)
- php 分页相关
- 最简单的php导出excel文件方法
- vue组件详解(二)——使用props传递数据
- Android获取QQ和微信的聊天记录,并保存到数据库
- 博弈论进阶之SG函数
- Discuz!的cookie机制
- Js的cookie和session
- vue组件详解(三)——组件通信
- 再免费多看一章--高斯贝叶斯
- JS编码解码
- vue组件详解(四)——使用slot分发内容
- 博弈论进阶之Anti-SG游戏与SJ定理
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- PHP实现小程序批量通知推送
- Thinkphp5.0 框架Model模型简单用法分析
- php设计模式之单例模式用法经典示例分析
- PHP实现统计代码行数小工具
- redis+php实现微博(三)微博列表功能详解
- php设计模式之工厂模式用法经典实例分析
- laravel 关联关系遍历数组的例子
- PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
- 解决Laravel 使用insert插入数据,字段created_at为0000的问题
- 关于php unset对json_encode的影响详解
- php进行md5加密简单实例方法
- Laravel timestamps 设置为unix时间戳的方法
- php实现每日签到功能
- php+redis实现消息队列功能示例
- php使用curl模拟浏览器表单上传文件或者图片的办法