Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1808926
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2017-03-05 11:19:15

一、简介:


MySQL 5.7主要特性:

1、原生支持Systemd

2、更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化

3、更好的lnnoDB存储引擎

4、更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库

5、MySQL-5.6.3以上版本已经支持了多线程的主从复制

6、新增sys库:以后这会是DBA访问最平凡的库



二、安装MySQL 5.7.13


系统环境:Centos 7.2x86_64


1、安装前准备:


因为Centos 7.2默认安装了mariadb-libs,所以要先卸载掉


[root@localhost ~]# rpm -aq | grep mariadb


mariadb-libs-5.5.44-2.el7.centos.x86_64


[root@localhost ~]# rpm -e mariadb-libs --nodeps


2、安装相关依赖包


准备以下安装包(你可以点击一下超链接进行下载)


bison-3.0.4.tar.gz         cmake-3.5.2.tar.gz        mysql-5.7.13.tar.gz

boost_1_59_0.tar.gz        ncurses-5.9.tar.gz


注:相关依赖包的作用


# cmake:由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要cmake编译器,用于设置mysql的编译参数。(如:安装目录,数据存放目录,字符编码,排序规则等)


# boost:从MySQL5.7.5开始Boost库是必需的,mysql源码中用到了C++的Boost库,要求必需安装Boost1.59.0或以上版本。



# GCC:这是Linux下的C语言编译工具,MySQL源码编译完全由C和C++编写,要求必需安装GCC。


# bison:Linux下C/C++语法分析器。


# ncurses:字符终端处理库。


1)安装cmake


[root@localhost ~]# tar zxf cmake-3.5.2.tar.gz

[root@localhost ~]# cd cmake-3.5.2/

[root@localhost cmake-3.5.2]# ./bootstrap

[root@localhost cmake-3.5.2]# gmake && gmake install


2)查看cmake版本:

wKiom1i5jJeRuTo-AAAbOLB494Y945.png

wKiom1i5jJeRuTo-AAAbOLB494Y945.png 


3)安装ncurses


[root@localhost ~]# tar zxf ncurses-5.9.tar.gz

[root@localhost ~]# cd ncurses-5.9/

[root@localhost ncurses-5.9]# ./configure && make && make install


4)安装bison


[root@localhost ~]# tar zxf bison-3.0.4.tar.gz

[root@localhost ~]# cd bison-3.0.4/

[root@localhost bison-3.0.4]# ./configure && make && make install


5)安装boost


[root@localhost ~]# tar zxf boost_1_59_0.tar.gz

[root@localhost ~]# mv boost_1_59_0 /usr/local/boost


6)创建mysql用户和用户组及目录


[root@localhost ~]# groupadd -r mysql

[root@localhost ~]# useradd -r -g mysql -s /bin/false -M mysql

[root@localhost ~]# mkdir -p /usr/local/mysql/data


3、编译安装MySQL


解压mysql源码包


[root@localhost ~]# tar zxf mysql-5.7.13.tar.gz

[root@localhost ~]# cd mysql-5.7.13/


执行cmake命令进行编译前配置


[root@localhost mysql-5.7.13]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost


<-- 注 -->:配置解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql          ## MySQL安装根目录

-DMYSQL_DATADIR=/usr/local/mysql/data            ## MySQL数据库文件存放目录

-DSYSCONFDIR=/etc                                ## MySQL配置文件所在目录

-DDEFAULT_CHARSET=utf8                           ## 设置Mysql默认字符集为utf-8

-DDEFAULT_COLLATION=utf8_general_ci              ## 设置默认字符集校对规则

-DEXTRA_CHARSETS=all                             ## 使MySQL支持所有的扩展字符

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock    ## 指定mysql.sock位置

-DWITH_MYISAM_STORAGE_ENGINE=1                   ## 添加MYISAM引擎支持

-DWITH_INNOBASE_STORAGE_ENGINE=1                 ## 添加lnnoDB引擎支持

-DWITH_ARCHIVE_STORAGE_ENGINE=1                  ## 添加ARCHIVE引擎支持

-DWITH_PARTITION_STORAGE_ENGINE=1                ## 安装支持数据库分区

-DWITH_SYSTEMD=1                                 ## 可以使用systemd控制mysql服务

-DWITH_BOOST=/usr/local/boost                    ## 指向boost库所在目录



开始编译及编译安装


[root@localhost mysql-5.7.13]# make && make install

<-- 注 -->:加快编译速度的方法:


[root@localhost mysql-5.7.13]# make -j $(grep processor /proc/cpuinfo |wc -l) && make install

-j:参数表示根据CPU核数指定编译时的线程数,可以加快编译速度(默认为1个线程数)



<-- 注 -->:若要重新运行cmake配置,则需要删除CMakeCache.txt文件



[root@localhost mysql-5.7.13]# make clean


[root@localhost mysql-5.7.13]# rm -f CMakeCache.txt


优化MySQL的执行路径


[root@localhost mysql-5.7.13]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile


[root@localhost mysql-5.7.13]# source /etc/profile


4、设置权限并初始化MySQL系统授权表


[root@localhost ~]# cd /usr/local/mysql/


[root@localhost mysql]# chown -R mysql:mysql .


[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local --datadir=/usr/local/mysql/data

wKiom1i5jX_BdMaWAAC4kDE_t6w848.png 


<-- 注 -->:以root初始化操作系统时要加--user=mysql参数,生成一个随机密码。(需记住登入时要用)


wKiom1i5jX_BdMaWAAC4kDE_t6w848.png


5、创建配置文件


[root@localhost mysql]# cd support-files/


[root@localhost support-files]# cp my-default.cnf /etc/my.cnf


[root@localhost ~]# vim /etc/my.cnf        ##在[mysqld]下面添加以下内容

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 1

socket = /usr/local/mysql/mysql

.sock

log-error = /usr/local/mysql/data/mysqld.err


6、配置mysql自动启动


[root@localhost ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/


<-- 注 -->:因为mysqld.service 把默认的pid文件指定到/var/run/mysqld目录,而没有事先建立目录,所有这个时候启动mysql会失败。


两种解决方法:


第一种方法:创建/var/run/mysqld目录并设置属主属主为mysql

root@localhost ~]# mkdir /var/run/mysqld

[root@localhost ~]# chown -R mysql:mysql /var/run/mysqld/


第二种方法:修改/usr/lib/system/system/mysqld.service

[root@localhost ~]# vim /usr/lib/systemd/system/mysqld.service

 wKioL1i5jcih-1pSAABfPlEj0H4569.png

wKioL1i5jcih-1pSAABfPlEj0H4569.png

[root@localhost ~]# systemctl daemon-reload

启动mysql服务

[root@localhost ~]# systemctl start mysqld.service

[root@localhost ~]# systemctl status mysqld.service


wKiom1i5jeOAOEthAACUcYKDVck794.png

 wKiom1i5jeOAOEthAACUcYKDVck794.png

查看端口号


[root@localhost ~]# netstat -anpt |grep mysqld

wKioL1i5jfbgtGjaAAAScwlhW34212.png

 wKioL1i5jfbgtGjaAAAScwlhW34212.png


6、设置数据库管理员用户root密码


[root@localhost ~]# mysqladmin -uroot -p'=hJ?V:?9vQ-Q' password 123.com

注:这里-p选项中输入初始化时生成的随机密码


访问MySQL数据库

[root@localhost ~]# mysql -u root -p

 wKiom1i5jhLhd7n1AABg14_fP4A545.png

——到此MySQL 5.7.13安装完成





一、编译安装MySQL前的准备工作

安装编译源码所需的工具和库


yum install gcc gcc-c++ cmake ncurses-devel perl  

也可以源码安装cmake,从下载源码并编译安装


wget /files/v2.8/cmake-2.8.10.2.tar.gz   
tar -xzvf cmake-2.8.10.2.tar.gz   
cd cmake-2.8.10.2   
./bootstrap ; make ; make install   
cd ~  
二、设置MySQL用户和组
新增mysql用户组


groupadd mysql  

新增mysql用户


useradd -r -g mysql mysql  

三、新建MySQL所需要的目录

新建mysql安装目录


mkdir -p /usr/local/mysql  

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


mkdir -p /data/mysqldb  

四、下载MySQL源码包并解压
从http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz直接下载源码


wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
tar -zxv -f mysql-5.6.15.tar.gz  
cd mysql-5.6.15  




cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1  -DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data/ -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 



注:重新运行配置,需要删除CMakeCache.txt文件


rm CMakeCache.txt  

编译安装


make && make install 

六、修改mysql目录所有者和组
修改mysql安装目录


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


修改mysql数据库文件目录


cd /data/mysqldb  
chown -R mysql:mysql . 
 
七、初始化mysql数据库


cd /usr/local/mysql   
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb  


八、复制mysql服务启动配置文件


cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf  


注:如果/etc/my.cnf文件存在,则覆盖。


九、复制mysql服务启动脚本及加入PATH路径


cp support-files/mysql.server /etc/init.d/mysqld   
  
vim /etc/profile   
  
      PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH  
  
      export PATH  
  
source /etc/profile    


十、启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的)


service mysqld start 


chkconfig --level 35 mysqld on


十一、检查mysql服务是否启动


netstat -tulnp | grep 3306   
mysql -u root -p   
密码为空,如果能登陆上,则安装成功。

十二、修改MySQL用户root的密码


mysqladmin -u root password '123456'   

注:也可运行安全设置脚本,修改MySQL用户root的密码,同时可禁止root远程连接,移除test数据库和匿名用户。


/usr/local/mysql/bin/mysql_secure_installation  

十三、可能会出现的错误


问题:   
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).   
解决:   


MySQL问题解决:-bash:mysql:command not found  

因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,  

系统在/usr/bin下面查此命令,所以找不到了   

   解决办法是:  

 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可  


centos7的selinux问题:打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。  


问题:   


MySQL问题解决:-bash:mysql:command not found  


因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,  


系统在/usr/bin下面查此命令,所以找不到了   
   解决办法是:  

 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可  


提示错误:Starting MySQL...The server quit without updating PID file [失败]/mysql/var/localhost.localdomain.pid).
解决:
   
新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。   

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock   
  
/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock  


MySQL问题解决:-bash:mysql:command not found  


因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,  
系统在/usr/bin下面查此命令,所以找不到了   
   解决办法是:  
 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可  

阅读(466) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~