安装环境:
- Centos:6.8
- Mysql:5.6
首先清除主机自带的 MySQL,
安装编译源码所需的工具和库
yum install gcc gcc-c++ ncurses-devel perl
安装 cmake, 从 www.cmake.org 下载源码并编译安装 tar -xzvf cmake-2.8.10.2.tar.gzcd cmake-2.8.10.2 ./bootstrap make && make install
下载 MySQL 源码包后开始编译 tar -zxf mysql-5.6.23.tar.gzcd mysql-5.6.23??? 一些准备工作设置 MySQL 用户和组新增 mysql 用户组 groupadd mysql
新增 mysql 用户 useradd -r -g mysql mysql
新建 MySQL 所需要的目录新建 mysql 安装目录 mkdir -p /usr/local/mysql? 新建 mysql 数据库数据文件目录 mkdir -p /data/mysqldb??? 编译安装 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_INNOBASE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1-DWITH_BLACKHOLE_STORAGE_ENGINE=1-DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306-DENABLE_DOWNLOADS=1
说明: 网上有些文章中给出的 cmake 命令如下: Cmake --DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1-DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
编译后警告显示:
即 MYSQL_USER 等模块式不可用的. 此时, 若需要重新配置, 请删除 CMakeCache.txt 文件: rm CMakeCache.txt? 去掉 MYSQL_USER 等不可被用的选项后, 再重新编译即可. 10.cmake--DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/data/mysql-DMYSQL_TCP_PORT=3306
编译 & 安装 make &&make install 这两步都需要很长时间, 请耐心等待.
修改 mysql 目录所有者和组修改 mysql 安装目录 cd /usr/local/mysqlchown -R mysql:mysql .? 修改 mysql 数据库文件目录 cd /data/mysqldbchown -R mysql:mysql .? 说明: chown 最后跟文件名. 此处使用 ".", 表示当前目录.
启动 MySQL 初始化 mysql 数据库 cd /usr/local/mysqlscripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
说明: 从打印日志可以看出, mysql_install_db 命令的作用是生成 MySQL 系统表. 并且最后在 mysql 目录下生成一个 my.cnf 文件.--user=mysql 作用是指定运行 mysqld 进程的用户名. 设置这个用户以后, 所有通过 mysqld 进程创建的文件 (如日志等) 都会属于这个用户.
mysql 配置文件 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 注: 如果 / etc/my.cnf 文件存在, 则覆盖. 关于 MySQL 配置文件存在多个访问位置. MySQL 会以此访问, 后访问到的配置会覆盖先前的配置. MySQL 访问配置文件的访问路径与访问顺序如下:
? 配置 MySQL[client] #password = your_password port = 3306 socket = /data/mysql/mysql.sock default-character-set=utf8 . 注释 Here follows entries for some pecific programs 注释: The MySQL server
[mysqld] port = 3306 character_set_server=utf8 basedir=/data/mysql datadir=/data/mysql/data socket = /data/mysql/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M
将 MySQL 执行命令添加入 PATHvim /etc/profile? 在文件的末尾添加内容: PATH=$PATH:/usr/local/mysql/binexport PATH? 保持退出后, 执行: source /etc/profile
将 MySQL 设置为系统服务并启动服务 cp support-files/mysql.server /etc/init.d/mysqld? 即, MySQL 可以以如下形式启动: service mysqld start? 如果报错 "Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/rhelubuntu.com.pid)."? 则修改 vim /etc/init.d/mysqld 修改 basedir=/usr/local/mysql???????????? -----mysql 安装位置修改 datadir=/var/data/mysqldata????????? -----mysql 数据文件存放位置? 一般修改好这个再重新启动 mysql 应该不会报错了.? 检查 MySQL 是否已经启动: netstat -tulnp | grep 3306?? 配置用户使用 MySQL 客户端连接 MySQL 服务器 mysql -u root -p 初始密码为空, 如果能登陆上, 则安装成功.? 设置 mysql 管理员密码 mysqladmin -u root password "123456"; 则 123456 即为新密码.? 设置 mysql 远程登录 grant all on . to root@'%';flush privileges;
来源: http://www.bubuko.com/infodetail-2756194.html