我们准备一台干净的centos机器,配置好163的yum源,后面我们可能要用yum方式下载一些依赖的软件
通过flashfxp把mysql的源码包上传到linux上面
永久关闭selinux
vi /etc/selinux/config
重启系统
<span style="white-space:pre"> </span>reboot
查看系统是否已经安装过mysql
<span style="white-space:pre"> </span>rpm -qa | grep mysql
centos默认是会安装mysql的就是版本比较老,我们卸载掉它
卸载之后还是会有一些文件没清干净的接下来删除老版本的开发包和头文件
这下完全卸载干净了
我们开始安装mysql源代码
更改防火墙设置允许mysql的3306端口被外界访问
<span style="white-space:pre"> </span>vi /etc/sysconfig/iptables
重新启动防火墙
service iptables restart
新增mysql用户组和用户,并且创建mysql执行文件目录
新建 MySQL 数据库数据文件目录:
添加mysql环境变量
<span style="white-space:pre"> </span>vi /etc/profile
使环境变量生效
<span style="white-space:pre"> </span>source /etc/profile
安装编译mysql所依赖的包,因为我们安装的mysql5.6的版本,这里是使用cmake工具进行编译的
我们使用yum安装以下依赖
yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf
automake
碰到问题都选 Y
如果你觉得你的安装速度很慢,那么请配置163的yum源
在usr/local/src目录下上传mysql源码包并解压
进入解压出来的mysql源码文件夹下
使用cmake命令构建源码
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
大概1分钟左右就好了
使用make和make install安装编译,这个过程会有点漫长
进入mysql的安装路径
cd /usr/local/mysql
运行脚本初始化数据库的系统库
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
编辑
mysql的配置文件
<span style="font-size:24px;"> vi my.cnf</span>
[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
复制mysql数据库的启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql服务
service mysql start
mysqladmin -u root password 'root'
设置mysql客户端的登录用户名和密码
运行登录脚本
我们如果要用navicat这种图形化连接工具登录mysql需要设置远程访问授权
这里我设置成用户名 root 密码也是root
好了,到此为止mysql的源码安装就完毕了。