博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL简介与安装
阅读量:5219 次
发布时间:2019-06-14

本文共 4423 字,大约阅读时间需要 14 分钟。

MySQL简介与安装

 

1. MySQL简介

1.1 MySQL发展史

1979年,报表工具Unireg出现。

1985 年,以瑞典David Axmark 为首,成立了一家公司(AB前身),IASM引擎出现。
1990年,提供SQL支持。
1999-2000年,MySQL AB公司成立,并公布源码,开源化。
2000年4月BDB引擎出现,支持事务。
2008年1月16号 MySQL被Sun公司收购。
2009年04月20日Oracle收购Sun公司,MySQL 转入Oracle 门下。

现在,越来越多的公司开始使用MySQL:

 

1.2 MySQL特点

开源

社区版免费
简单,使用方便,可靠
稳定、安全
社区活跃

 

1.3 MySQL产品线

1) 3.26--5.2版本

    正宗后代
    Centos5、6中默认有5.1版本
    Centos7中默认是MariaDB
    5.4--5.7 ,8.0版本
    借鉴社区好的贡献,进一步开发的版本
    主流版本:5.5 5.6 5.7
    讲课版本5.6最新版

2) MySQL Cluster 6.0 版本&更高

    类似于Oracle RAC,硬件要求高。
    一般各大网站没有人用

3) 版本选择

    5.6:选择GA版(General Availability),GA版发布6个月-1年以上的版本,最好是个双数版本比如:5.6.36 、5.6.38 、5.6.34

    5.7:5.7.17以后的GA版,且发行6个月以上比如:5.7.18 、5.7.20

4) 面试时可能会问到的关于MySQL版本的问题

    问:你公司用mysql吗
    答:yes
    问:公司用什么版本
    答:5.6.36
    问:为什么要用这个版本?
    答:行业里面有一个规范,选择主流的5.6 5.7 GA 6个月以上的版本。我们公司选择这个版本是基于公司业务特点来决定的。另外因为开发阶段用的版本也是5.6的。为了保持版本一致。

 

2. MySQL安装

2.1 MySQL安装方式

1) RPM、Yum:安装方便、安装速度快,无法定制

2) 二进制:不需要安装,解压即可使用,不能定制功能
3) 编译安装:可定制,安装慢。
    5.5之前:./configure make make install
    5.5之后:cmake gmake
4) 先编译,然后制作rpm,制作yum库,然后yum安装。
    简单、速度快、可定制,比较复杂 制作时间长
5) 企业选择安装方式
    中小企业:以上方式都可以,运维偏向编译,dba偏向选择二进制。
    大型企业:可以选择4

 

2.2 编译安装MySQL(5.6.36)

2.2.1 环境准备

1) 克隆一个模板机器(使用centos6),克隆完做快照

2) IP 10.0.0.52 主机名db02
3) iptables selinux
4) 下载好5.6.36
5) 安装依赖包

yum install -y ncurses-devel libaio-devel

6) 安装cmake

yum install cmake –y

7) 创建用户

useradd -s /sbin/nologin -M mysqlid mysql

2.2.2 配置并编译

1) 上传或下载压缩包并解压缩

mkdir /server/toolscd /server/toolsls -l mysql-5.6.36.tar.gztar xf mysql-5.6.36.tar.gzcd mysql-5.6.36

我在实际操作中,发现还有两个目录需要创建/application/mysql-5.6.36 /application/mysql-5.6.36/tmp/

2) 进行配置

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \-DMYSQL_DATADIR=/application/mysql-5.6.36/data \-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \-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 \-DWITH_SSL=bundled \-DENABLED_LOCAL_INFILE=1 \-DWITH_EMBEDDED_SERVER=1 \-DENABLE_DOWNLOADS=1 \-DWITH_DEBUG=0

 

PS1:重要配置项解释

配置预设置的数据库必要参数

-DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 ---安装路径
-DMYSQL_DATADIR=/application/mysql-5.6.36/data ---数据库存放数据
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock ---数据库套接字文件位置

PS2:硬编码程序,将以上配置直接加入到mysql程序中

mysqld_safe
mysqld
mysql
mysqldump
mysqladmin

PS3:源码包安装方式和cmake有所不同:

源码包方式安装前的预配置

./configure --prefix --with --enable --disable (cmake)
作用:告诉后续make(编译)的时候都要开启或者关闭软件的哪些功能

 

3) 编译

make && make install

make:将c的源代码编译成计算机能够识别的格式(二进制)。

make install:将编译好的程序文件拷贝到指定安装目录,修改权限。

4) 创建软链接

ln -s /application/mysql-5.6.36/ /application/mysql

5) 复制配置文件

cp support-files/my*.cnf /etc/my.cnf

6) 初始化数据库

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

NOTE:初始化数据库(建库),初始化的是mysql基本运行所必须的一些“系统库”(元数据)。

7) 设置属主和属组

chown -R mysql.mysql /application/mysql/

8) 将MySQL启动停止重启的脚本添加到init.d文件下,并更名为mysqld

cp support-files/mysql.server /etc/init.d/mysqld

9) 设置MySQL服务脚本的权限为700

chmod 700 /etc/init.d/mysqld

10) 配置MySQL服务为开机自启动(可以根据实际需要,选择是否开机自启动)

chkconfig mysqld onchkconfig --list mysqld

11) 启动MySQL

/etc/init.d/mysqld start

12) 查看MySQL是否已经启动成功

netstat -lntup|grep 3306

13) 添加环境变量,并运行source使环境变量立即生效

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile tail -1 /etc/profile source /etc/profile echo $PATH

14) 安装完成运行MySQL

mysql

15) 设置MySQL数据库root管理员帐号的初始密码

mysqladmin -uroot -p password 'oldboy123' mysql -uroot -poldboy123

16) 查询数据库中已有用户,删除掉没用的用户和没用的数据库

select user,host from mysql.user;drop user ''@'db01';drop user ''@'localhost';drop user 'root'@'db01';drop user 'root'@'::1';drop user 'root'@'127.0.0.1';select user,host,password from mysql.user;drop database test;show databases;

 17) 查看错误日志

tail -100 /application/mysql/data/db02.err

 

3. MySQL忘记root密码如何操作

3.1 MySQL5.6

1) 停数据库

/etc/init.d/mysqld stop

 

2) 以“安全模式”登录数据库,--skip-grant-tables --skip-networking

/application/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &

 

3) 修改密码

update mysql.user set password=PASSWORD('110') where user='root' and host='localhost';select user,host,password from mysql.user;

 

4) 关闭数据库,并正常启动数据库,暂时使用pkill杀掉mysqld进程,后面再介绍其它方法

pkill mysqld/etc/init.d/mysqld start

 

3.2 MySQL5.7

5.7中不再使用password字段进行存储密码,使用authentication_string来替代,修改命令如下:

update mysql.user set authentication_string=PASSWORD('123') where user='root' and host='localhost';

 

转载于:https://www.cnblogs.com/oldpan/p/9013361.html

你可能感兴趣的文章
UML期末复习题——2.9:UML Deployment Diagram
查看>>
在微信公众号开发(微站)过程中用Zepto/jquery的on/live绑定的click事件点击无效(不能执行)...
查看>>
django后台处理前端上传和显示图片
查看>>
3. express 框架使用 vue框架 weiUI
查看>>
实例化积累
查看>>
求解单源最短路问题:Bellman-Ford算法(可判负权回路)详解 之 poj 3268 Silver Cow Party...
查看>>
节点属性(DOM对象)
查看>>
重回游戏开发-第7周
查看>>
【转载】VC维,结构风险最小化
查看>>
【转】linux HZ Tick Jiffies
查看>>
【探路者】团队第一周贡献分数分配结果
查看>>
计算方法 读书笔记
查看>>
css3之 media query 使用(转)
查看>>
【单源最短路模板】 poj 2387
查看>>
思想总结
查看>>
BZOJ 1012 洛谷1198 最大数 maxnumber
查看>>
如何提升程序员的工作效率?
查看>>
html学习笔记(2)-字母大小写转换练习
查看>>
Outlook-----use cached exchange mode在注册表中的值
查看>>
Java中跳出for循环的方法
查看>>