MySQL源码编译安装(CentOS6.7 + MySql5.6)
2017-05-20 00:00
806 查看
一、部署环境
操作系统:CentOS-6.7-x86_64-bin-DVD1.isoMySQL 版本:mysql-5.6.26.tar.gz
操作用户:root
系统IP:10.1.50.220
主机名:CentOS-mysql-01
二、服务器配置
1. 配置网络
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
#以下四项未修改,保留装机后的默认值 DEVICE=eth0 HWADDR=08:00:27:52:E7:EE TYPE=Ethernet UUID=722c608f-4d7f-4e7c-a915-0b952f48864e #从no改为yes ONBOOT=yes #从yes改为no NM_CONTROLLED=no #从dhcp改为static BOOTPROTO=static #与主机ip设置为同一网段 主机ip:10.1.50.87 IPADDR=10.1.50.220 #以下为新增 NETMASK=255.255.0.0 #与主机子网掩码设置一致 GATEWAY=10.1.254.1 #与主机默认网关设置一致 DNS1=223.5.5.5 DNS2=223.6.6.6
2. 设置主机名
$ vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=CentOS-mysql-01
3. 设置ip与主机名映射
$ vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 CentOS-mysql-01 10.1.50.220 CentOS-mysql-01
4. disable selinux
$ vim /etc/selinux/config SELINUX=disabled
5. 重启操作系统
$ reboot
三、源码安装MySQL5.6.26
1. 检查是否安装有MySQL Server
$ rpm -qa | grep mysql # CentOS7以上 $ rpm -qa | grep mariadb # 如果有,卸载 $ rpm -e [mysql] # 上面的命令卸载不掉,使用下面的命令 $ rpm -e --nodeps [mysql]
2. 改防火墙设置,打开3306 端口
$ vim /etc/sysconfig/iptables #增加如下行: -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
3. 重启防火墙
$ service iptables restart
4. 新增mysql用户组
$ groupadd mysql
5. 新增mysql用户,并添加到mysql用户组
$ useradd -r -g mysql mysql
6. 新建MySQL执行文件目录
$ mkdir -p /usr/local/mysql #-p 参数的作用是:如果最终目录的父目录不存在也会一并创建
7. 新建MySQL 数据库数据文件目录
$ mkdir -p /home/mysql/data $ mkdir -p /home/mysql/logs $ mkdir -p /home/mysql/temp #注意:上面的logs 及temp 目录是为了以后将MySQL 的数据文件与执行程序文件分离, #如果你打算设置到不同的路径,注意修改对应#的执行命令和数据库初始化脚本。 #正式生产环境,建议数据目录和日志目录都使用单独的分区来挂载,不同分区属于不同的磁盘或磁盘组
8. 增加PATH 环境变量搜索路径
$ vi /etc/profile #在profile 文件末尾增加两行 # mysql env param PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH #使PATH 搜索路径立即生效: $ source /etc/profile
9. 安装编译MySQL需要的依赖包
$ yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake
10. 上传mysql-5.6.26.tar.gz、解压、安装
#进入/usr/local/src 目录,上传mysql-5.6.26.tar.gz 源代码到/usr/local/src 目录 $ cd /usr/local/src # 解压缩源码包: $ tar -zxvf mysql-5.6.26.tar.gz #进入解压缩源码目录: $ cd mysql-5.6.26 #使用cmake 源码安装mysql $ cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/home/mysql/data \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306 \-DENABLE_DOWNLOADS=1 $ make $ make install # 注意:如果需要重装mysql,在/usr/local/src/mysql-5.6.26 在执行下make install 就可以了,不需要再cmake 和make $ make clean
11. 修改mysql 目录拥有者为mysql 用户
$ chown -Rf mysql:mysql /usr/local/mysql $ chown -Rf mysql:mysql /home/mysql
12. 执行初始化配置脚本,创建系统自带的数据库和表
# 注意:路径/home/mysql/data 需要换成你自定定义的数据库存放路径 $ scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
13. 更改my.cnf所有者
# 初始化脚本在/usr/local/mysql/下生成了配置文件my.cnf,需要更改该配置文件的所有者 $ chown -Rf mysql:mysql /usr/local/mysql/my.cnf
注意:
(1)在启动MySQL 服务时,会按照一定次序搜索my.cnf,先在/etc 目录下找,找不到则会搜索mysql 程序目录下是否有my.cnf
(2)需要注意CentOS 6 版操作系统的最小安装完成后,即使没有安装mysql,在/etc 目录下也会存在一个my.cnf 文件,建议将此文件更名为其他的名字,否则该文件会干扰源码安装的MySQL 的正确配置,造成无法启动。修改/etc/my.cnf 操作如下:可以:mv /etc/my.cnf /etc/my.cnf.bak 也可以:删除掉/etc/my.cnf 这个文件:rm /etc/my.cnf
如果你需要用于生产环境,不要急着做下面的mysql 启动操作。建议把上一步骤中mysql 初始化生的/usr/local/mysql/my.cnf 删除,然后把你优化好的mysql 配置文件my.cnf 放到/etc下。
我们这里使用/etc/my.cnf
14. 编辑my.cnf
$ vim my.cnf [client] port = 3306 socket = /usr/local/mysql/mysql.sock [mysqld] character-set-server = utf8 collation-server = utf8_general_ci skip-external-locking skip-name-resolve user = mysql port = 3306 basedir = /usr/local/mysql datadir = /home/mysql/data tmpdir = /home/mysql/temp socket = /usr/local/mysql/mysql.sock log-error = /home/mysql/logs/mysql_error.log pid-file = /home/mysql/data/CentOS-mysql-01.pid open_files_limit = 10240 back_log = 600 max_connections=500 max_connect_errors = 6000 wait_timeout=605800 #open_tables = 600 #table_cache = 650 #opened_tables = 630 max_allowed_packet = 32M sort_buffer_size = 4M join_buffer_size = 4M thread_cache_size = 300 query_cache_type = 1 query_cache_size = 256M query_cache_limit = 2M query_cache_min_res_unit = 16k tmp_table_size = 256M max_heap_table_size = 256M key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M lower_case_table_names=1 default-storage-engine = INNODB innodb_buffer_pool_size = 2G innodb_log_buffer_size = 32M innodb_log_file_size = 128M innodb_flush_method = O_DIRECT thread_concurrency = 32 long_query_time= 2 slow-query-log = on slow-query-log-file = /home/mysql/logs/mysql-slow.log
15. 复制服务启动脚本
$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
16. 启动MySQL 服务
$ service mysql start
17. 设置MySQL 开机自动启动服务
$ chkconfig mysql on
18. 设置MySQL 数据库root 用户的本地登录密码(初始用户没有密码)
$ mysqladmin -u root password 'root'
19. 登录并修改MySQL 用户root 的密码
$ mysql -u root -p # 输入密码,进入mysql mysql> use mysql; # 修改root 用户密码 mysql> update user set Password = password('root') where user='root'; mysql> flush privileges; # 允许root 远程登录,设置远程登录密码 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; mysql> flush privileges; mysql> exit;
20. 运行安全设置脚本
$ /usr/local/mysql/bin/mysql_secure_installation
Enter current password for root (enter for none): ----->此处输入root 密码
Change the root password? [Y/n] n -----> 上已为root 设置了密码,此处可输n
Remove anonymous users? [Y/n] Y ------> 删除匿名用户
Disallow root login remotely? [Y/n] n -----> 一般不允许root 远程登录,可添加普通用户,然后设置允许远程登录
Remove test database and access to it? [Y/n] Y -----> 删除test 库及相应权限
Reload privilege tables now? [Y/n] Y -----> 重新加载权限表使设置生效
21. 重启服务器,检测mysql 是否能开机自动启动
$ reboot
相关文章推荐
- 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- 分布式架构学习之:033--MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- 分布式架构学习之:MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- 分布式架构学习之:MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- 【MySQL学习笔记】CentOS 6.6上源码编译方式安装MySQL 5.6
- Centos6.7操作系统mysql-5.5cmake 源码编译安装
- CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)
- 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
- MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
- CentOS 6.5源码编译安装MySQL 5.6
- MySQL5.6源码编译安装(CentOS-6.6+MySQL-5.6)(一)
- centos6.7环境上源码安装mysql5.6
- 大环境下MySQL5.6源码安装实战一步步教你 CentOS6.5_64bit下编译安装MySQL-5.6.23@guoyJoe
- 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
- mysql5.6 源码编译安装 基于centOS6.8 Basic Server
- 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
- MySQL 源码编译安装(CentOS-6.7 + MySQL-5.6.26)
- centos6源码编译安装MySQL5.6
- CentOS 6.4 优化编译安装MySQL-5.6