(1)、MySQL数据库介绍
2个祖师爷 大卫。艾克马克 另一个是迈克尔.维德纽斯
1996年初发布mysql1.0
新的版本5.6,稳定的是5.6.1-5.6.2
MySQL(发音为"myess cue el",不是"mysequel")是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
为什么选择MySQL
1:mysql性能卓越,服务稳定,很少出现异常宕机
2:mysql开源免费,无版权制约,自主性及使用成本低
3:产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php
4:技术积累,庞大的活跃的社区,
5:软件体积小,安装简单,易于维护
mysql业务场
1.电商,淘宝,京东,一号店,苏宁
2.游戏,比如网易
3.教育行业
4.百货:一号店
5.知识库,电信
6.通讯行业
除了对数据库一致性要求非常高的100%行业之外,所有的场景都适合。
MySQL数据库分类与版本升级
MySQL官网http://www.mysql.com/,MySQL版本采用双授权政策,和大多数开源产品路线一样,分为社区版和商业版,并且这两个版本又分别分成四个版本依次发布,Alpha版、Beta版、RC版和GA版
GA版即为正式版
拓展:
Alpha:['ælfə]是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。
Beta:美 ['bi:tə]也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。
RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。
GA:General Availability,正式发布的版本,在国外都是用GA来说明release版本的。
1:社区版和企业版的区别
1)首先价格上,社区版完全免费,企业版需要高额的费用
2)技术上,企业版具有MySQL企业级服务器、MySQL企业级系统监控工具。企业版经过严格的测试认证,相对企业版,社区版的开发测试环境没有那么严格
3)服务方面,社区版mysql官方不提供任何技术支持,使用过程出现任何意外不负任何责任,企业版与之相反
4)商业版不支持GPL协议
拓展:
1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3. MySQL Cluster 集群版,开源免费。可将几个MySQLServer封装成一个Server。
4. MySQL Cluster CGE 高级集群版,需付费。
5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL Community Server 是开源免费的,这也是我们通常用的MySQL的版本
2:MySQL产品路线
三条产品线
1)5.0.XX到5.1.XX产品系列
这条产品线继续完善改进用户体验和性能,同时增加新功能,是mysql早期产品的延续,如rhel6自带的mysql
2)5.4.XX开始到5.7.XX产品系列
mysql社区和第三方公司percona整合的,吸收新的算法和存储引擎,现在已经到了5.6.26
3)6.0.XX到7.X.XX产品系列
主要是为了更好的推广MySQLCluster版本,提供Cluster版本的性能和稳定性,这个版本比较少公司用,原因是出来太晚了
MySQL安装
生产环境怎么选择MySQL版本
1:选择稳定版 选择社区的GA版
2:产品线,主要是5.1和5.5 ,多数5.5
3:选择MySQL GA版发布6个月以上的版本
4:最好向后较长时间没有更新发布的版本
5:与开发人员使用版本的兼容
6:测试环境跑3-6个月
7:到生产环境非核心业务跑几个月
MySQL安装方法
1:使用二进制方式安装,rpm/yum
2: 源码编译,产品线路1用普通编译安装,线路2用cmake编译安装5.5/6/7
3:批量部署,src.rpm 通过spec文件
源码编译安装mysql5.5.32
如果是mysql5.1系列的直接使用编译安装,不用cmake
1)安装cmake编译工具
yum install cmake -y
2)下载MySQL
wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz
拓展:为啥会报错,如何查找正确的版本号
报错: 需要改成5.5.53
3)安装依赖
yum install ncurses-devel –y 用于终端操作的开发包
4)添加用户
useradd -u 8001 -s /sbin/nologin mysql
5)创建数据库存放目录并解压
mkdir /data
解压:
[root@abao ~]# ls
mysql-5.5.53.tar.gz
[root@abao ~]# tar xf mysql-5.5.53.tar.gz
[root@abao ~]# cd mysql-5.5.53
[root@abaomysql-5.5.53]# pwd
/root/mysql-5.5.53
[root@abaomysql-5.5.53]#
yum install gcc-c++
6)编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
容易出现的报错:
-- MySQL 5.5.53
-- Packaging as: mysql-5.5.53-Linux-x86_64
-- Could NOT find Threads (missing: Threads_FOUND)
-- Could NOT find Threads (missing: Threads_FOUND)
-- Check if the system is big endian
-- Searching 16 bit integer
CMake Error at/usr/share/cmake/Modules/TestBigEndian.cmake:31 (MESSAGE):
no suitable type found
CallStack (most recent call first):
configure.cmake:523 (TEST_BIG_ENDIAN)
CMakeLists.txt:350 (INCLUDE)
解决办法:[root@abaomysql-5.5.53]# rm -rf CMakeCache.txt
参数说明:
-DCMAKE_INSTALL_PREFIX 数据文件存放目录
-DMYSQL_UNIX_ADDR sock文件路径
-DDEFAULT_CHARSET 默认字符集
-DDEFAULT_COLLATION 默认字符校对
-DWITH_EXTRA_CHARSETS 扩展字符支持 默认all
-DWITH_storage_STORAGE_ENGINE 存储引擎的支持,默认支持MyISAM,MERGE,MEMORY,CVS存储引擎
-DENABLED_LOCAL_INFILE=1 启用加载本地数据
-DMYSQL_DATADIR 数据存放目录
-DMYSQL_USER mysql运行用户
扩展:
-DWITH_PARTITION_STORAGE_ENGINE=1 支持分区表
-DINSTALL_LIBDIR=dir_name
-DSYSCONFDIR=dir_name The default my.cnf option file directory
make -j 4 && make install -j 4 是指使用4个cpu核心数,如我们的双核四线程,就可以写4
7)授权用户
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data
chmod 1777 /tmp
8)创建配置文件
cp support-files/my-large.cnf /etc/my.cnf
9)设置环境变量
echo 'exportPATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
source !$
10)创建服务启动脚本,添加开机启动
cp support-files/mysql.server/etc/init.d/mysqld
chmod +x /etc/init.d/mysqld 给脚本添加执行权限
vi /etc/init.d/mysqld 服务启动脚本要修改以下两个参数
basedir=/usr/local/mysql MySQL安装目录
datadir= /data 数据存放目录
chkconfig mysqld on 添加开机启动
11)初始化数据库
[root@CentOS-Server mysql]cd /usr/local/mysql/
[root@CentOS-Server mysql]# chmod +x scripts/mysql_install_db
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data --user=mysql
看到两个ok就成功
12)初始化安全配置
启动mysql服务:service mysqld start
mysql_secure_installation 安全初始化配置
13)排错
出现这种错误
Enter currentpassword for root (enter for none):
ERROR1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
干掉mysql进程
pkill mysqld
rm -rf /data/*
重新初始化
提示:
Remove anonymous users? [Y/n] Y
...Success!
Disallow root login remotely? [Y/n] Y
...Success!
Remove test database and access to it?[Y/n] Y
-Dropping test database...
...Success!
-Removing privileges on test database...
...Success!
Reload privilege tables now? [Y/n] y
...Success!
Cleaning up...
13)MySQL安全优化小配置
用户安全
mysql> select user,host from mysql.user;
mysql> delete from mysql.user whereuser='';
mysql> delete from mysql.user wherehost='server01.cn';
mysql> delete from mysql.user where host='::1';
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
或者把用户都删了,添加一个额外的管理员
mysql> delete from mysql.user;
mysql> grant all privileges on *.* tosystem@'localhost' identified by '123456' with grant option;
mysql> flush privileges;
mysql> select user,host from mysql.user;
+--------+-----------+
| user | host |
+--------+-----------+
|system | localhost |
+--------+-----------+
1 row in set (0.00 sec)
mysql> drop database test;
本文 暂无 评论