MySQL入门01-MySQL源码安装

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

操作系统:CentOS 6.7
MySQL版本:5.6.30

1.前期准备

首先需要CMake,可以yum直接安装:

yum install cmake

也可以官网 https://cmake.org/ 下载源码编译。
我这里选择了官网下载最新版本cmake-3.5.2.tar.gz。

# tar -zxvf cmake-3.5.2.tar.gz && cd cmake-3.5.2

# ./configure
部分输出略。
-- Build files have been written to: /soft/cmake-3.5.2
---------------------------------------------
CMake has bootstrapped. Now run gmake. # gmake # make install

2.系统配置

添加组和用户:

groupadd mysql
useradd -g mysql mysql

vi /etc/security/limits.conf 文件末尾添加:

mysql   soft    nproc   2047
mysql   hard    nproc   16384
mysql   soft    nofile  1024
mysql   hard    nofile  65536

3.CMake编译配置

解压源码包:

tar zxvf mysql-5.6.30.tar.gz && cd mysql-5.6.30

CMake编译配置

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DCOMPILATION_COMMENT='JSS for mysqltest' \ -DWITH_READLINE=ON \ -DSYSCONFDIR=/data/mysqldata/3306 \ -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock

遇到以下错误,

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 
CMake Error at cmake/readline.cmake:85 (MESSAGE):
  Curses library not found.  Please install appropriate package,

      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. Call Stack (most recent call first): cmake/readline.cmake:128 (FIND_CURSES) cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:421 (MYSQL_CHECK_EDITLINE) -- Configuring incomplete, errors occurred! See also "/soft/mysql-5.6.30/CMakeFiles/CMakeOutput.log". See also "/soft/mysql-5.6.30/CMakeFiles/CMakeError.log". [root@JY-DB mysql-5.6.30]# 

yum安装提示缺失的包:

yum install ncurses-devel

重新删除配置文件:

rm -rf CMakeCache.txt

然后重新CMake工具编译:

CMake Warning:
  Manually-specified variables were not used by the project:

    WITH_READLINE


-- Build files have been written to: /soft/mysql-5.6.30
[root@JY-DB mysql-5.6.30]# 

4.make && make install

[root@JY-DB mysql-5.6.30]# make && make install
大量输出略。

这个时间会比较长,也跟机器性能有关。

5.后期配置和测试

5.1 打包MySQL二进制版本:

[root@JY-DB data]# tar zcvf mysql-5.6.30.tar.gz /usr/local/mysql/

5.2 修改MySQL软件所在目录拥有者:

chown -R mysql.mysql /usr/local/mysql

5.3 修改mysql用户环境变量:

vi ~/.bash_profile

export LANG=zh_CN.GB18030
export PATH=/usr/local/mysql/bin:$PATH

5.4 创建数据库服务:

# mkdir -p /data/mysqldata/{3306/{data,tmp,binlog},backup,scripts}
# chown -R mysql.mysql /data/mysqldata
# su - mysql
$ more /usr/local/mysql/support-files/my-default.cnf 
$ vi /data/mysqldata/3306/my.cnf

my.cnf配置文件内容如下:

[client]
port = 3306
socket = /data/mysqldata/3306/mysql.sock

#The MySQL Server
[mysqld]
port = 3306
user = mysql
socket = /data/mysqldata/3306/mysql.sock
pid-file = /data/mysqldata/3306/mysql.pid
basedir = /usr/local/mysql
datadir = /data/mysqldata/3306/data
tmpdir = /data/mysqldata/3306/tmp
open_files_limit = 10240
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#Buffer
max_allowed_packet = 256M
max_heap_table_size = 256M
net_buffer_length = 8k
sort_buffer_size = 2M
join_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 16M

#Log
log-bin = /data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = mixed
log_output = FILE
log-error = ../mysql-error.log
slow_query_log = 1
slow_query_log_file = ../slow_query.log
general_log = 0
general_log_file = ../general_query.log
expire-logs-days = 14

#InnoDB
innodb_data_file_path = ibdata1:2048M:autoextend
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_buffer_pool_size = 1024M

[mysql]
no-auto-rehash
prompt = (\u@\h)[\d]>\_
default-character-set = gbk

初始化MySQL数据库:

$ /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql

5.5 启动数据库服务:

mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &

测试连接并查看MySQL进程和端口监听状态:

netstat -lnt | grep 3306
ps -ef | grep bin/mysql | grep -v grep

实际操作过程如下:

[root@JY-DB ~]# su - mysql
[mysql@JY-DB ~]$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.30-log JSS for mysqltest Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. (root@localhost)[(none)]> exit Bye [mysql@JY-DB ~]$ netstat -lnt |grep 3306 tcp 0 0 :::3306 :::* LISTEN [mysql@JY-DB ~]$ [mysql@JY-DB ~]$ ps -ef | grep bin/mysql | grep -v grep mysql 6736 1753 0 11:24 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf mysql 7202 6736 0 11:24 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysqldata/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/data/mysqldata/3306/data/../mysql-error.log --open-files-limit=10240 --pid-file=/data/mysqldata/3306/mysql.pid --socket=/data/mysqldata/3306/mysql.sock --port=3306
转:http://www.cnblogs.com/jyzhao/p/5516031.html
文章可以转载,必须以链接形式标明出处。


本文转自 张冲andy 博客园博客,原文链接: http://www.cnblogs.com/andy6/p/5789205.html   ,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 监控 关系型数据库
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
|
1月前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
119 0
|
1月前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
1月前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
|
1月前
|
安全 关系型数据库 MySQL
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
轻松入门MySQL:MySQL8权限管理详解,角色和用户操作实例(18)
|
1月前
|
关系型数据库 MySQL 数据处理
轻松入门MySQL:数据库之触发器,自动守护你的数据宝库(17)
轻松入门MySQL:数据库之触发器,自动守护你的数据宝库(17)
|
1月前
|
存储 关系型数据库 MySQL
轻松入门MySQL:揭秘MySQL游标,数据处理的神秘利器(16)
轻松入门MySQL:揭秘MySQL游标,数据处理的神秘利器(16)
|
1月前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
|
1月前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
|
1月前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)

推荐镜像

更多