CentOS源码安装MySQL

1、关闭SELINUX

[root@localhost ~]# vi /etc/selinux/config

设置SELINUX=disbaled
然后重启服务器。

[root@localhost ~]#reboot

这里需要关闭SELINUX,因为当SELINUX不关闭时,iptables不读取配置文件。

2、检查是否安装mysql服务

[root@localhost ~]# rpm -qa | grep mysql

mysql-libs-5.1.71-1.el6.x86_64
在centos7下该命令换成:

[root@localhost ~]# rpm -qa | grep mariadb

mysql-libs 是 MySQL 的必要包,如果有检查出已安装mysql的话可通过rpm -e mysql命令来卸载掉

3、修改防火墙设置,打开 3306 端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加一行:   -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
重启防火墙:

[root@localhost ~]# service iptables restart

在centos7下默认的防火墙机制是采用firewall。使用如下命令添加3306端口:
添加
firewall-cmd --zone=public --add-port=3306/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=3306/tcp
删除
firewall-cmd --zone= public --remove-port=3306/tcp --permanent

4、基础数据配置
新增 mysql 用户组:

[root@localhost ~]# groupadd mysql

新增 mysql 用户,并添加到 mysql 用户组:

[root@localhost ~]# useradd -r -g mysql mysql

新建 MySQL 执行文件目录(后面会把编译好的 mysql 程序安装到这个目录):

[root@localhost ~]# mkdir -p /usr/local/mysql

新建 MySQL 数据库数据文件目录:

[root@localhost ~]# mkdir -p /home/mysql/data
[root@localhost ~]# mkdir -p /home/mysql/logs
[root@localhost ~]# mkdir -p /home/mysql/temp

5、增加 PATH 环境变量搜索路径:

[root@localhost ~]# vi /etc/profilea

##在 profile 文件末尾增加两行
# mysql env param
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
使 PATH 搜索路径立即生效:

[root@localhost ~]# source /etc/profile

6、安装编译 MySQL 需要的依赖包:
(mysql 从 5.5 版本开始,不再使用./configure 编译,而是使用 cmake 编译器,具体的
cmake 编译参数可以参考 mysql 官网文档
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html,安装基
本依赖包,先用 yum 安装 cmake、automake 、autoconf ,另 MySQL 5.5.x 需要最少安装的
包有:bison,gcc、gcc-c++、ncurses-devel):

[root@localhost]# yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake

7、下载mysql源码

http://mirrors.sohu.com/mysql/MySQL-5.5/

http://mirrors.sohu.com/mysql/MySQL-5.6/

http://mirrors.sohu.com/mysql/MySQL-5.7/

进入/usr/local/src 目录,上传 mysql-5.6.26.tar.gz 源代码到/usr/local/src 目录:

[root@localhost src]# cd /usr/local/src

8、开始编译安装 mysql-5.6.26:
解压缩源码包:

[root@localhost src]# tar -zxvf mysql-5.6.26.tar.gz

进入解压缩源码目录:

[root@localhost src]# cd mysql-5.6.26

使用 cmake 源码安装 mysql

[root@localhost mysql-5.6.26]# 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

上面的这些复制完,回车,然后就开始 cmake 的过程
配置解释:
-DCMAKE_INSTALL_PREFIX=a/usr/local/mysql 设置安装目录
-DMYSQL_DATADIR=/home/mysql/data 设置数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 设置 UNIX socket 目录
-DMYSQL_USER=mysql 设置运行用户
-DDEFAULT_CHARSET=utf8 设置默认字符集,默认 latin1 
-DEFAULT_COLLATION=utf8_general_ci 设置默认校对规则,默认 latin1_general_ci 
-DWITH_INNOBASE_STORAGE_ENGINE=1 添加 InnoDB 引擎支持
-DENABLE_DOWNLOADS=1 自动下载可选文件,比如自动下载谷歌的测试包
-DMYSQL_TCP_PORT=3306 设置服务器监听端口,默认 3306 
-DSYSCONFDIR=/etc 设置 my.cnf 所在目录,默认为安装目录)

9、cmake 结束后开始编译源码,这一步时间会较长,请耐心等待:

[root@localhost mysql-5.6.26]# make

10、安装编译好的程序:

[root@localhost mysql-5.6.26]# make install

(注意:如果需要重装 mysql,在/usr/local/src/mysql-5.6.26 在执行下 make install 就可以了,不需要再 cmake 和 make)

11、清除安装临时文件:

[root@localhost mysql-5.6.26]# make clean

12、修改 mysql 目录拥有者为 mysql 用户:

[root@localhost mysql-5.6.26]# chown -Rf mysql:mysql /usr/local/mysql
[root@localhost mysql-5.6.26]# chown -Rf mysql:mysql /home/mysql

13、进入 mysql 执行程序的安装路径:

[root@localhost mysql-5.6.26]# cd /usr/local/mysql

14、执行初始化配置脚本,创建系统自带的数据库和表

[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data

15、初始化脚本在/usr/local/mysql/下生成了配置文件 my.cnf

# ls -lah

需要更改该配置文件的所有者:

[root@localhost mysql] # chown -Rf mysql:mysql /usr/local/mysql/my.cnf

16、注意:
(1)Tips:在启动 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
下。
17、编辑/etc/my.cnf:

[root@localhost etc]# vi 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
# server_id = .....
socket = /usr/local/mysql/mysql.sock
log-error = /home/mysql/logs/mysql_error.log
pid-file = /home/mysql/mysql.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 
[mysqldump]
quick
max_allowed_packet = 32M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

18、复制服务启动脚本:

[root@localhost etc]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

19、启动 MySQL 服务:

[root@localhost etc]# service mysql start

(初次启动会在/usr/local/mysql 目录下生成 mysql.sock 文件)

20、设置 MySQL 开机自动启动服务:

[root@localhost etc]# chkconfig mysql on

设置 MySQL 数据库 root 用户的本地登录密码(初始用户没有密码):

[root@localhost etc]# mysqladmin -u root password '123456'

23、登录并修改 MySQL 用户 root 的密码:


修改 root 用户密码:

允许 root 远程登录,设置远程登录密码:123456
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值