1. mysql 介绍
1.1 mysql 职业规划
1.2 mysql 必备技能
1.3 MySQL 与Oracle对比
oracle运维要比mysql做的好,不需要专业运维。mysql能看源码,可二次开发,oracle则不能。
1.4 MySQL 编译安装:
1.4.1 编译介绍
源码编译:
根据机器操作系统的系统库编译出更高效的MySQL 服务器。
必备的包和工具
gcc/g++ :MySQL 5.6开始,需要使用g++进行编译。
cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本。
bison :MySQL语法解析器需要使用bison进行编译。
ncurses-devel :用于终端操作的开发包。
zlib :MySQL使用zlib进行压缩。
功能需要的包:
libxml :用于XML输入输出方式的支持。
openssl :使用openssl安全套接字方式通信。
dtrace :用于诊断MySQL问题。
MySQL 编译参数
CMAKE_BUILD_TYPE | 编译的版本类型:RelWithDebInfo和Debug,不同之处是RelWithDebInfo会进行优化。 |
CMAKE_INSTALL_PREFIX | 指定make install安装的目标路径。 |
SYSCONFDIR | 指定配置文件的默认路径。 |
MYSQL_DATADIR | 指定data目录的默认路径。 |
WITH_DEBUG | 指定是否有debugging信息,一般用于源码调试时,打开WITH_DEBUG,生产环境关闭。 |
ENABLED_PROFILING | 指定是否可以使用show profile显示操作执行的详细信息。 |
DEFAULT_CHARSET | 指定默认字符集,可以在启动的配置文件中指定。 |
DEFAULT_COLLATION | 指定默认字符比较、排序的规则。 |
WITH_EXTRA_CHARSETS | 指定其他可能使用的字符集。 |
WITH_SSL | 指定SSL的类型,从5.6.6开始默认bundled类型,此外也可以指定SSL库的路径地址。 |
WITH_ZLIB | 指定zlib的类型,用于压缩功能。 |
WITH_storage_STORAGE_ENGINE | 指定编译支持的存储引擎,默认支持MyISAM,MERGE,MEMORY,CSV存储引擎。 |
ENABLED_LOCAL_INFILE | 指定是否允许使用load data infile功能。 |
WITH_EMBEDDED_SERVER | 指定是否编译libmysqld嵌入式库。 |
INSTALL_LAYOUT | 指定安装的布局类型。 |
MySQL 编译:
CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
CXX=g++
CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
export CFLAGS CXX CXXFLAGS
cmake . [PARAMETERS]
make -j & make instal
1.4.2 安装步骤
1。关闭防火墙。
service iptables status; 检查防火墙时候是否关闭
service iptables stop; 关闭防火墙 chkconfig iptables off; 彻底关闭,重启时也关闭。
设置 vim /etc/selinux/config : SELINUX=disabled
如果iptables 模块没安装,使用安装命令
yum install iptables-services
也可使用firewalld方式:
firewalld 方式
启动: systemctl start firewalld
查看状态: systemctl status firewalld
禁用,禁止开机启动: systemctl disable firewalld
停止运行: systemctl stop firewalld
重启:firewall-cmd --reload
2.配置sysctl.conf
生产环境下,需要配置/etc/sysctl.conf : 配置网络,内存等系统信息。根据公司服务器实际情况去配置
3.检查操作系统上是否安装了MySQL.
rpm -qa | grep mysql; 系统会自带mysql
rpm -e mysql名; 删除掉自带mysql , 或者命令: yum remove mysql*;
4.下载mysql 源码包
上传到服务器,可以使用rz命令,使用yum install安装rz. 使用yum下载之前需要配置yum源。
如果使用VM虚拟机挂载光盘启动的Centos 使用以下方式:
1.把光盘挂载到 /mnt目录,才能使用光盘里的内容。 mount /dev/cdrom /mnt
2. 把光盘内容做个备份。 mkdir -p /opt/software/mnt ; cp -r /mnt /opt/software/mnt;
3. yun源存放位置:/etc/yum.repos.d;
4.创建自定义配置文件。 base.repo; (可从其他配置文件拷贝配置并修改)
5.安装rz . yum install -y lrzsz. 安装完毕就可方便 文件的上传下载。上传mysql 源码包 到服务器。
如果是服务器,可以直接修改yum源,即可以更改Centos-Base.repo内容,然后
yum clean all; yum makecache; yum install -y lrzsz. 即可安装。
5.添加用户和组。
groupadd mysql; 添加用户组;
useradd -d /home/mysql -g mysql -m mysql ;添加mysql用户并属于mysql用户组。
passwd mysql; 设置mysql 用户密码。
id mysql; 查看mysql 用户信息。
su - mysql ;切换mysql 用户。
6.配MySQL环境变量
进入mysql用户。vim .bash_profile.
在path中添加mysql bin 的位置。
source .bash_profile.
7.创建目录及授权
创建数据目录:mkdir -p /opt/moudle/my3306/data
创建日志目录:mkdir -p /opt/moudle/my3306/log/iblog(innodb的数据字典)
mkdir -p /opt/moudle/my3306/log/binlog
mkdir -p /opt/moudle/my3306/run (存放socket 的spid)
临时目录:mkdir -p /opt/moudle/my3306/tmp
授权: chown -R myql:mysql /opt/module/my3306
chmod -R 755 /opt/module/my3306
8.解压mysql 5.6
tar -zxvf mysql... -C 解压目录。 注意:解压目录不能是my3306, my3306存放编译完的mysql。
9.配yum源,安装cmake
cmake 是mysql 5.5 以上使用的编译工具
安装:yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl
cmake 编译:
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/module/my3306 \
-DINSTALL_DATADIR=/opt/module/my3306/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/opt/module/my3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on
使用 make 进行编译。
10.编译并安装
编译完后,使用make install 命令进行安装。
11.MySQL 参数配置
采用标准化配置。即 多个实例的配置文件my.cnf中,除了名称和端口不同,其他参数都相同。 不同 实例只需修改 名称与端口即可。
把脚本 上传到 my3306目录下。
12.初始化MySQL脚本,(创建mysql自带的库)
切换到mysql 用户。
cd my3306; ./scripts/mysql_install_db --defaults-file=/opt/module/my3306/my.cnf --datadir=/opt/module/my3306/data --user=mysql
如果出错 ,就查看 log/error.log 日志文件。
13.启动MySQL
cd my3306/bin; 使用mysqld_safe 命令来启动。(如果mysql挂掉了,该命令会自动进行检查)
./mysqld_safe --defaults-file=/opt/module/my3306/my.cnf --user=mysql &; mysql会进入后台运行
14.登录MySQL
输入 mysql命令即可登录。
如果在部署新mysql 实例,需要修改新实例的server_id.