Linux操作系统下安装MySQL5.7

MySQL是目前最流行的关系数据库管理系统。它分为社区版和企业版。由于其体积小、速度快、成本低,尤其是开放源代码这一特点,使其成为中小型网站开发的首选的数据库平台。

MySQL的安装

环境准备,CentOS7 64bit 2G 内存(1G 内存编译将近一个小时),磁盘空间 15G 以上。
最好使用本地源,由于网络源会把最新的安装包下载,可能会出现安装错误。
从MySQL5.7版本开始,安装MySQL需要依赖 Boost 的C++扩展,而且只能是 1.59.0 版本。
从mysql5.5起,mysql源码安装开始使用cmake了。
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
1、准备工作
准备 c++ booost 库,不需要编译 。

    tar xf boost_1_59_0.tar.gz
    mv boost_1_59_0 /usr/local/boost #如果没有boost目录请自行创建

2.安装相关编译工具

yum install gcc*
yum install cmake
yum install ncurses*

3.下载mysql并解压

tar xf mysql-5.7.19.tar.gz -C /usr/local/src ##解压目录,随便在哪解压,解压之后,出现一个mysql57目录,进入mysql57目录进行编译,必须要保证你的目录的存储空间有15G之内。

4.编译

我是在/mysql解压的mysql安装包
cd /mysql
cd mysql57
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
解析:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 #指定安装路径
-DMYSQL_DATADIR=/data/mysql         #指定数据存放路径
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci     #设置字符校验集
-DMYSQL_TCP_PORT=3306 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  #设置套接字生成路径
-DMYSQL_USER=mysql 
-DWITH_MYISAM_STORAGE_ENGINE=1              ##存储引擎的支持
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DDOWNLOAD_BOOST=1 
-DWITH_BOOST=/usr/local/boost   #指定Boost扩展源码路径
##编译,必须在你解压之后的mysql57目录之下,cmake 的检测过程中,如果出现错误,需要重新cmake,删除缓存文件  
rm CMakeCache.txt , 然后重新运行cmake 。
make ##编译,如果出现kernel的错误,可能是你的内存太小了,建议调整为2G
make install 释放,会释放在/usr/local/mysql57下面,这里有mysql运行的主要程序,解压路径下的东西可以删掉了,因为有关mysql的主要程序都在/usr/local/mysql57因为在cmake的时候已经指定了。
 


5.其他配置

 chown -R mysql:mysql /usr/local/mysql57 #   重新修改权限,要求mysql用户具有读写权限
chmod 666 /etc/my.cnf  不允许其他用户修改此配置文件,但是mysql用户可以读写此文件。

6./etc/my.cnf主配置文件

提供配置文件, my.cnf    默认配置详情如下,可以自己建立
        
[client]
port=3306
socket=/mysql/mysql.sock

[mysqld]
character-set-server=utf8 
collation-server=utf8_general_ci
user=mysql  #运行身份是mysql用户
port=3306    #端口号为3306
basedir=/usr/local/mysql57 #工作路径
datadir=/mysql    #数据目录,自己指定,尽可能空间大一点,要求,mysql对此目录具有读写权限
tmpdir=/tmp       
socket=/mysql/mysql.sock #套接字生成路径,可以自己指定
[mysqld_safe]
log-error=/mysql/mysqld.log #错误日志产生路径
pid-file=/mysql/mysqld.pid  #pid产生路径

      

7.初始化数据库

/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf  --initialize  --user=mysql 

命令参数解释:
–defaults-file : 指定MySQL配置文件路径 ##这里面有我们刚才配置好的参数
–initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要立刻修改密码(5.7以后的版本)
–user: 指定运行用户

7.mysql 5.7版本以后,就不是无密码登录,系统会在初始化之后随机产生一个密码,在/mysql/mysqld.log中可以查看(具体看你指定的目录datadir)

cat /mysql/mysqld.log#我设置的datadir是/mysql

8.开启服务

/usr/local/mysql57/support-files/mysql.server   start 

9.使用随机密码登录(注意登录之后要把密码修改掉)

mysql -uroot  -p

猜你喜欢

转载自blog.csdn.net/wana_one_gy/article/details/82713181