这是本文档旧的修订版!
CMAKE 安装方法,下载 generic linux source 包: mysql-5.6.40.tar.gz https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz
yum install cmake gcc gcc-c++ openssl-devel boost ncurses-devel libaio-devel
groupadd -r mysql (添加mysql组) useradd -g mysql -r -s /sbin/nologin mysql (添加mysql用户,并指定所属组与家目录) mkdir -p /data/mysql/data (一般将数据盘单独挂载比较好) chown -R mysql.mysql /data/mysql/data (更改数据库目录的属主属组)
编译参数:
5.7以前版本:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci
5.7以后版本:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_BOOST=boost/boost_1_59_0/
出错如下所示boost没有,或者版本不对 – MySQL currently requires boost_1_59_0 cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
先下载boost_1_59_0 wget http://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz tar -xf boost_1_59_0.tar.gz cd boost_1_59_0 ./bootstrap.sh ./b2 install 好像把这个包里面的文件放到mysql原文件的:boost/boost_1_59_0 目录下,或指定到这个目录就可以,
make install
如果以上过程顺利执行,那么恭喜你,你的mysql已经安装成功了,但是如果编译安装过程中出错,没关系查看出错信息,清理此前的编译所生成的文件, # rm CMakeCache.txt (相当于make clean)
1.mysql初始化 # cd /usr/local/mysql # chown -R :mysql /usr/local/mysql/ (因为mysql初始化时,mysql进程要对该文件有写权限)
#bin/mysqld --user=mysql --datadir=/data/mysql/data --initialize-insecure # 5.7的在/usr/local/mysql/bin/目录下
mkdir /var/log/mariadb chown mysql:mysql /var/log/mariadb touch /var/log/mariadb/mariadb.log chmod 777 /var/log/mariadb/mariadb.log
vi /etc/my.cnf #改成以下配置,没有的加,有的改
datadir=/data/mysql/data socket=/var/lib/mysql/mysql.sock user=mysql symbolic-links=0 character_set_server=utf8 collation-server=utf8_unicode_ci max_connections=1000 innodb_buffer_pool_size=8G query_cache_size=128M tmp_table_size=256M key_buffer_size=32m read_buffer_size=4m sort_buffer_size=4m thread_cache_size=64 log_warnings=2 thread_stack=256M skip-name-resolve
log-error=/var/log/mariadb/mariadb.log sql-mode=“STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER”
[client] socket=/var/lib/mysql/mysql.sock
注意:确保:(read_buffer_size + sort_buffer_size) * max_connections 要小于或等于:innodb_buffer_pool_size
innodb_buffer_pool_size 一般配成内存的1/2 ~ 1/4
879RBlJDL=-W
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
tks6Cx4uX+pc
/usr/local/mysql/bin/mysqld_safe –user=mysql –defaults-file=/usr/local/mysql/my.cnf
添加服务: 将源码文件夹内的:cp support-files/mysql.server /etc/init.d/mysqld (编译目录下) chkconfig –add mysqld chmod a+wrx /etc/init.d/mysqld mkdir /var/lib/mysql chown mysql:mysql /var/lib/mysql/ service mysqld start 开机启动: chkconfig mysqld on