博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在CentOS7上编译安装MySQL 5.7.14步骤详解
阅读量:6055 次
发布时间:2019-06-20

本文共 6841 字,大约阅读时间需要 22 分钟。

hot3.png

MySQL 5.7主要特性

  1. 更好的性能
    对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是用户更关心的。
  2. 更好的InnoDB存储引擎
  3. 更为健壮的复制功能
    复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用。MySQL数据库。此外,GTID在线平滑升级也变得可能。
  4. 更好的优化器
  5. 优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题。
  6. 原生JSON类型的支持
  7. 更好的地理信息服务支持
    InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性
  8. 新增sys库
    以后这会是DBA访问最频繁的库MySQL 5.7已经作为数据库可选项添加到《OneinStack》

安装前的装备

 安装依赖包

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel

下载源码包

建议到官方网站下载http://dev.mysql.com/downloads/mysql/,选择“Source Code”。下载的过程,需要注册一个Oracle账户,如果有直接登录就好

提供一个下载地址:http://101.96.10.47/dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.14.tar.gz

新版本的源码增加了boost库,如果你下的源码里面没有需要下载这个库,否则会报错

cd /usr/local/srcwget http://101.96.10.47/dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.14.tar.gztar -zvxf mysql-boost-5.7.14.tar.gzcd mysql-5.7.14

新建MySQL用户和用户组

groupadd -r mysqluseradd -r -g mysql mysql

新建MySQL数据库数据文件目录

mkdir -p /home/mysql/datamkdir -p /home/mysql/logsmkdir -p /home/mysql/temp

备注:真实的生产环境一般来说会独立放在根目录下,方便磁盘挂载上去

预编译

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/home/mysql/data \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DWITH_BOOST=./bootst/boost_1_59_0 \-DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DENABLE_DTRACE=0 \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_EMBEDDED_SERVER=1

备注:使用cmake源码安装MySQL,如果你打算安装到不同的路径,注意修改上面语句汇总的“/usr/local/mysql”和“/home/mysql/data

配置解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    //设置安装目录

-DMYSQL_DATADIR=/home/mysql/data     //设置数据库存放目录             

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock   //设置UNIX socket目录

-DDEFAULT_CHARSET=utf8mb4     //设置默认字符集

-DDEFAULT_COLLATION=utf8mb4_general_ci     //设置默认校对规则

-DWITH_INNOBASE_STORAGE_ENGINE=1    //添加InnoDB引擎支持

-DSYSCONFDIR=/etc    //设置my.cnf配置文件的所在目录,默认为安装目录

编译安装

make#编译安装的过程比较久,编译安装完成执行make installmake install#安装完成后清理一下零时文件make clean

设置启动脚本,开机自启动

#拷贝可执行文件到指定的目录下,并修改名字为mysqldcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld#授予可执行的权限chmod +x /etc/init.d/mysqld#设置为开机启动 systemctl enable mysqld

修改mysql的可执行目录

chown -Rf mysql:mysql /usr/local/mysqlchown -Rf mysql:mysql /home/mysql

配置文件

#参考,具体里面的参数说明,请自行晚上搜索[mysqld]character-set-server = utf8mb4collation-server = utf8mb4_general_ciskip-external-lockingskip-name-resolveuser = mysqlport = 3306basedir = /usr/local/mysqldatadir = /home/mysql/datatmpdir = /home/mysql/temp# server_id = .....socket = /usr/local/mysql/mysql.socklog-error = /home/mysql/logs/mysql_error.logpid-file = /home/mysql/data/mysql.pidopen_files_limit = 10240back_log = 600max_connections=500max_connect_errors = 6000wait_timeout=605800#open_tables = 600#table_cache = 650#opened_tables = 630max_allowed_packet = 32Msort_buffer_size = 4Mjoin_buffer_size = 4Mthread_cache_size = 300query_cache_type = 1query_cache_size = 256Mquery_cache_limit = 2Mquery_cache_min_res_unit = 16ktmp_table_size = 256Mmax_heap_table_size = 256Mkey_buffer_size = 256Mread_buffer_size = 1Mread_rnd_buffer_size = 16Mbulk_insert_buffer_size = 64Mlower_case_table_names=1default-storage-engine = INNODBinnodb_buffer_pool_size = 1Ginnodb_log_buffer_size = 32Minnodb_log_file_size = 128Minnodb_flush_method = O_DIRECT#####################long_query_time= 2slow-query-log = onslow-query-log-file = /home/mysql/logs/mysql-slow.log[mysqldump]quickmax_allowed_packet = 32M[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

添加环境变量

vi /etc/profile#末尾添加以下内容#mysql envexport PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/libsource /etc/profile

初始化数据库

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data

备注:

  • MySQL之前版本mysql_install_db是在mysql_basedir/script下
  • MySQL 5.7直接放在了mysql_install_db/bin目录下。
  • "–initialize"已废弃,生成一个随机密码(~/.mysql_secret)
  • "–initialize-insecure"不会生成密码
  • "–datadir"目录下不能有数据文件

我用上面的语句执行后,好像没起啥作用,然后把-datadir里面的数据全部删除,用以前的脚本执行了一次,然后成功

mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data

启动数据库

[root@db-01 ~]# systemctl start mysqld[root@db-01 ~]# systemctl status mysqld?.mysqld.service - LSB: start and stop MySQL   Loaded: loaded (/etc/rc.d/init.d/mysqld)   Active: active (running) since Sat 2016-08-27 18:02:31 CST; 9s ago     Docs: man:systemd-sysv-generator(8)  Process: 13086 ExecStop=/etc/rc.d/init.d/mysqld stop (code=exited, status=0/SUCCESS)  Process: 13211 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)   CGroup: /system.slice/mysqld.service           ?..13228 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/home/mysql/data --pid-file=/home/mysql/data/mysql.pid           ?..13878 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/...Aug 27 18:02:29 db-01 systemd[1]: Starting LSB: start and stop MySQL...Aug 27 18:02:31 db-01 mysqld[13211]: Starting MySQL.. SUCCESS!Aug 27 18:02:31 db-01 systemd[1]: Started LSB: start and stop MySQL.

查看mysql服务进程和端口

[root@db-01 ~]# ps -ef | grep mysqlroot      13228      1  0 18:02 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/home/mysql/data --pid-file=/home/mysql/data/mysql.pidmysql     13878  13228  0 18:02 ?        00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/home/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --open-files-limit=10240 --pid-file=/home/mysql/data/mysql.pid --socket=/usr/local/mysql/mysql.sock --port=3306root      14266  14187  0 18:05 pts/0    00:00:00 grep --color=auto mysql

设置数据库root用户密码

  MySQL和Oracle数据库一样,数据库也默认自带了一个 root 用户(这个和当前Linux主机上的root用户是完全不搭边的),我们在设置好MySQL数据库的安全配置后初始化root用户的密码。配制过程中,一路输入 y 就行了。这里只说明下MySQL5.7.14版本中,用户密码策略分成低级 LOW 、中等 MEDIUM 和超强 STRONG 三种,推荐使用中等 MEDIUM 级别!

mysql_secure_installation

在这里设置的root用户明码,可以通过命令登陆,但是不能执行任何操作,需要重置密码

mysql -u root -p#首次进入,无法进行任何操作,会报错,运行mysqladmin重置密码mysqladmin -u root
[root@db-01 ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.7.14-log Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || edu_demo           || mysql              || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)

这样MySQL 5.7.14就完成了安装,如果想要重新安装,只需要进入 /usr/local/src/mysql-5.7.14目录,重新执行make install 就好。

转载于:https://my.oschina.net/u/1429136/blog/738772

你可能感兴趣的文章
poj 2975 Nim
查看>>
网络对抗技术作业1
查看>>
字典树(trie树)、后缀树
查看>>
IOS android 1px边框
查看>>
使用UIImageView展现来自网络的图片
查看>>
各种进制的前缀后缀表示
查看>>
SQL Server2005+、MySQL、Oracle 数据库字典生成工具
查看>>
2016/12/07
查看>>
一个简单的条件概率问题
查看>>
完成登录功能,用session记住用户名
查看>>
在tableview上加UIcollectionView,出现collectionview显示区域不正确问题
查看>>
JAVASCRIPT实现翻页保存已勾选的项目
查看>>
一文教会你数据库性能调优(附某大型医院真实案例)
查看>>
ios开发之--UIButton中imageView和titleLabel的位置调整
查看>>
团队成立日志
查看>>
Log日志规范
查看>>
P1056 排座椅
查看>>
1. how to install vmware tools in ubuntu
查看>>
树链剖分+线段树 HDOJ 4897 Little Devil I(小恶魔)
查看>>
redis.conf配置详细解析
查看>>