MySQL 第一篇
一、MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性
特点:
性能卓越,服务稳定,很少出现宕机
开放源代码且无版权制约,自主性强,使用成本低
支持多操作系统,提供多种API接口,支持多种开发语言(Python,Php,Java等)
二、MySQL安装方式
1.yum安装 (适合对数据库要求不太高的场合)
大的门户网站把源码根据企业需求制作成rpm,搭建yum仓库
2.常规方式编译安装
.configure/make/make install (mysql 5.1及以前)
cmake /make /make install
|
序号 |
MySQL安装方式 |
特点说明 |
|
1 |
yum/rpm安装 |
简单,部署速度快,但是没法定制安装,适合新手 |
|
2 |
二进制安装 |
解压软件,简单配置后就可以使用,不用安装,部署速度较快,专业DBA常用这种方式,软件名如:mysql-5.5.50-linux2.6-x86_64.tar.gz |
|
3 |
源码编译安装 |
可以定制安装(指定字符集,安装路径等),但是安装时间长 |
|
4 |
源码软件结合yum/rpm安装 |
把源码软件制作成符合要求的rpm,放到yum仓库,然后通过yum来安装,结合了1和3的优点,安装快速,可以任意定制参数 |
三、MySQL安装实战(源码cmake方式编译安装MySQL)
1.下载mysql/cmake安装包
|
1
2
3
|
[root@master ~]# mkdir /home/tools[root@master ~]# wget –P /home/tools https://cmake.org/files/v2.8/cmake-2.8.12.tar.gz[root@master ~]# wget -P /home/tools/ http://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.50.tar.gz |
2.建立账号
|
1
2
3
4
5
6
|
[root@master ~]# groupadd mysql[root@master ~]# useradd -s /sbin/nologin -g mysql -M mysqluseradd参数说明: -s /sbin/nologin # 表示禁止该用户登录,只需角色存在即可,加强安全 -g mysql # 指定属组 -M # 表示不创建用户家目录 |
3.配置安装环境
创建目录并授权
|
1
2
3
4
|
[root@master ~]# mkdir -p /usr/local/mysql[root@master ~]# mkdir -p /db/mysql[root@master ~]# chown -R mysql.mysql /usr/local/mysql[root@master ~]# chown -R mysql.mysql /db |
安装依赖
|
1
|
[root@master ~]# yum install gcc gcc-c++ make cmake ncurses-devel bison perl -y |
配置解析
|
1
2
3
4
|
[root@master ~]# hostnamemaster.opsedu.com[root@master ~]# vim /etc/hosts192.168.10.66 master # 添加一条 |
4.安装mysql
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
[root@master tools]# tar -zxf mysql-5.5.50.tar.gz[root@master tools]# cd mysql-5.5.50[root@master mysql-5.5.50]# cmake \> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \> -DMYSQL_DATADIR=/db/mysql \> -DMYSQL_TCP_PORT=3306 \> -DDEFAULT_CHARSET=utf8 \> -DDEFAULT_COLLATION=utf8_general_ci \> -DEXTRA_CHARSETS=all \> -DENABLED_LOCAL_INFILE=ON \> -DWITH_INNOBASE_STORAGE_ENGINE=1 \> -DWITH_FEDERATED_STORAGE_ENGINE=1 \> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \> -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \> -DWITH_FAST_MUTEXES=1 \> -DWITH_ZLIB=bundled \> -DENABLED_LOCAL_INFILE=1 \> -DWITH_READLINE=1 \> -DWITH_EMBEDDED_SERVER=1 \> -DWITH_DEBUG=0 \> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock[root@master mysql-5.5.50]# make # 编译[root@master mysql-5.5.50]# make install |
5.初始化mysql
配置mysql环境变量
|
1
2
|
[root@master mysql-5.5.50]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile[root@master mysql-5.5.50]# source /etc/profile |
查看配置文件
|
1
2
3
4
5
6
7
|
[root@master mysql-5.5.50]# ll support-files/*.cnf-rw-r--r-- 1 root root 4667 Jul9 01:26 support-files/my-huge.cnf-rw-r--r-- 1 root root 19759 Jul 9 01:26 support-files/my-innodb-heavy-4G.cnf-rw-r--r-- 1 root root 4641 Jul9 01:26 support-files/my-large.cnf-rw-r--r-- 1 root root 4652 Jul9 01:26 support-files/my-medium.cnf-rw-r--r-- 1 root root 2816 Jul9 01:26 support-files/my-small.cnf[root@master mysql-5.5.50]# /bin/cp support-files/my-small.cnf /etc/my.cnf # copy配置文件 |
创建mysql数据库文件
|
1
|
[root@master mysql-5.5.50]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/db/mysql --user=mysql |
以上命令主要是生成mysql库及相关文件:
这些文件是mysql正确运行所必需的基本数据库文件,其功能是对mysql权限、状态等进行管理

启动mysql
|
1
2
3
|
[root@master mysql-5.5.50]# /usr/local/mysql/bin/mysqld_safe --user=mysql &[root@master mysql-5.5.50]# netstat -lnt|grep 3306tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN |
配置mysql开机启动
|
1
2
3
4
|
[root@master mysql-5.5.50]# cp support-files/mysql.server /etc/init.d/mysqld[root@master mysql-5.5.50]# chmod 700 /etc/init.d/mysqld[root@master mysql-5.5.50]# chkconfig --add mysqld[root@master mysql-5.5.50]# chkconfig mysqld on |
初始化遇见错误
示例1:
WARING:The host ‘mysql’ could not be locked up with resolveip
需要修改主机名的解析,使其和usernae –n一样

示例2:
ERROR:1004 Can’t create file ‘/tmp/#sql300e_1_0.frm’(errno:13)
原因是/tmp权限有问题(不解决,后面可能无法登陆数据库)
![]()
6.后续操作
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@master mysql-5.5.50]# mysql # mysql安装好后,默认没有密码Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 1Server version: 5.5.50 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql># 为mysql增加(设定)密码[root@master mysql-5.5.50]# mysqladmin -uroot password 'q.123456' |
7. 单实例MySQL自动部署脚本
浙公网安备 33010602011771号