mysql 5.7.9 Linux安装
mysql安装mysql安装环境下载mysql源码安装安装依赖创建用户和目录修改权限解压编译编译相关问题修改默认的配置文件etcmycnf安装完成后修改权限初始化数据目录启用mysql server修改密码客户端登录添加man手册关闭mysql server其他说明环境CentOS6.6 X86_64下载mysql当前2015-11-26 JDK7最新版为 mysql
·
mysql安装
环境
CentOS6.6 X86_64
下载mysql
当前2015-11-26 mysql最新版为5.7.9
下载源码包
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.9.tar.gz
下载通用Linux二进制包
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz
可以用国内的镜像,比较快,如北理工(已失效)
wget http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.7/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz
可以下载5.7.10
wget http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.7/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
源码安装
官方文档参考
http://dev.mysql.com/doc/refman/5.7/en/source-installation.html
开始编译安装
安装依赖,创建用户和目录,修改权限
yum -y install cmake ncurses-devel libaio bison boost gcc-c++ gcc
groupadd mysql
useradd -r -g mysql -s /bin/false mysql01
mkdir -p /opt/mysql01/data/
mkdir -p /var/run/mysqld/
chown -R mysql01:mysql /opt/mysql01/
chgrp -R mysql /var/run/mysqld/
chmod -R 770 /var/run/mysqld/
解压编译
tar -xf mysql-5.7.9.tar.gz
cd mysql-5.7.9
cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql01 \
-DMYSQL_DATADIR=/opt/mysql01/data \
-DSYSCONFDIR=/opt/mysql01/ \
-DMYSQL_USER=mysql01 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysql01.sock \
-DMYSQL_TCP_PORT=13306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=0 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled
编译选项参考http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
默认选项编译,可以这样
cmake .
编译过程提示gmock测试问题,可以下载gmock,放到源码目录source_downloads目录下
cd source_downloads
wget -O gmock-1.7.0.zip https://github.com/google/googlemock/archive/release-1.7.0.zip
开始编译,make操作非常耗时间,看机器性能吧。
make
make install
编译相关问题
编译有问题,解决问题后,清理make缓存,重新编译。
make clean
rm CMakeCache.txt
WITH_XXXX_STORAGE_ENGINE存储引擎说明,1启动,0禁用:
默认包含 MyISAM, MERGE, MEMORY, CSV,不需要显式添加
其他: ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)
出错如下所示boost没有,或者版本不对
-- MySQL currently requires boost_1_59_0
cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
先下载boost_1_59_0
wget http://119.90.16.195:9999/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
修改默认的配置文件/etc/my.cnf
将默认生成的/etc/my.cnf配置文件移到安装主目录/opt/mysql01/下
mv /etc/my.cnf /opt/mysql01
参数文件加载顺序http://dev.mysql.com/doc/refman/5.7/en/option-files.html
/etc/my.cnf本机上所有的mysql都能读取此参数文件,有可能一台机器安装多个mysql服务,所以把参数文件放到各自的主目录,如果只安装一个mysql,无所谓啦!
vi my.cnf修改内容最终如下,根据实际调整。(有些参数编译的时候已指定,可以省略。写上自己还能查看。)
[mysqld]
datadir=/opt/mysql01/data/
socket=/var/run/mysqld/mysql01.sock
user=mysql01
port=13306
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
#log-error和pid默认都放在datadir下
log-error=/opt/mysql01/mysqld01_error.log
pid-file=/var/run/mysqld/mysql01.pid
安装完成后修改权限,初始化数据目录
cd /opt/mysql01
chown -R mysql01 .
chgrp -R mysql .
bin/mysqld --initialize --user=mysql01
输入结果如下所示
[root@vtfsdb1 mysql01]# bin/mysqld --initialize --user=mysql01
2015-11-27T21:57:43.165610Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-11-27T21:57:46.310959Z 0 [Warning] InnoDB: New log files created, LSN=45790
2015-11-27T21:57:46.677379Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2015-11-27T21:57:46.752756Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e4c2c517-9551-11e5-8825-000c29ddac27.
2015-11-27T21:57:46.755687Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2015-11-27T21:57:46.756551Z 1 [Note] A temporary password is generated for root@localhost: v8U%cgyn5QRB
注意最后出现的随机密码,后面要用
5.7跟之前的版本不一样,初始化完成后,没有空帐号(匿名帐号),没有test数据库,生成随机密码,当前主目录下也没有security_file,所以最好记住这个随机密码,后面修改吧。忘记了也没关系,看我后面的文章,如果重置mysql root密码。
说明:
如果之前初始化过,会提示出错,可以在谈不上目录下清空data目录 rm -rf data/*
相关选项参考http://dev.mysql.com/doc/refman/5.7/en/server-options.html
--defaults-file 默认参数文件(注意此参数放在所有参数第一位)
例如bin/mysqld --defaults-file=/opt/mysql01/my.cnf --initialize --user=mysql01
--no-defaults 不读取参数文件
mysqld参考http://dev.mysql.com/doc/refman/5.7/en/mysqld.html
默认选项帮助
mysqld --help --verbose
启用mysql server
在安装主目录/opt/mysql01/下执行
bin/mysqld_safe &
如果按照上面的步骤做,会读取/opt/mysql01/my.cnf参数配置文件。
如果启用出错,注意查看日志文件/opt/mysql01/mysqld01_error.log,或者使用bin/mysqld --console启动,日志直接输出在控制台,确认启动成功后,再切换回mysqld_safe启动。前台启动mysql server,如果使用Ctrl-C是无法停止服务的,需要使用mysqladmin shutdown,具体使用看下面的停止服务。
修改密码
生成过期的随机密码,密码已过期,不能登录,先修改密码,-p是随机生成的密码
bin/mysqladmin -h localhost -u root password 'root' -p'v8U%cgyn5QRB'
客户端登录
bin/mysql -uroot -p
进入系统后想修改密码,可以用如下指令
update mysql.user set authentication_string=password('foodsafe'), password_expired='N' where user='root';
或者ALTER USER 'root'@'localhost' IDENTIFIED BY 'foodsafe';
flush privileges;
特意在这里写出来修改密码,用过之前版本的mysql的人应该会注意到不是set password,还有什么password_expired过期字段
感觉alter user跟ORACLE好像。
添加man手册
export MANPATH=$MANPATH:/opt/mysql01/man/
添加完成后可以使用man mysqladmin等查看帮助手册
关闭mysql server
bin/mysqladmin shutdown -uroot -p
输入密码
实在不行kill杀进程吧,先用ps -ef|grep mysql找出进行pid,接下来,你懂的。
最好不要直接杀进程,容易导致数据库不一致,数据损坏丢失。
mysqladmin shutdown则是优雅地停止服务,放心使用。
其他
接下来还有Linux数据库服务器优化,mysql参数文件优化,mysql ssl等,这些单独在其他文章中再写吧。
说明
所有相关的目录,链接,参数等请根据实际情况自行调整。
更多推荐
已为社区贡献2条内容
所有评论(0)