环境:
虚拟机:VMware Workstation Pro 14
Linux版本:centos 7.0
Mysql版本:5.7.21
安装方式:二进制包安装(mysql-5.7.21.tar.gz)
登录用户:root
先吐槽一下,安装mysql确实是坑非常的多,本人也是新手上路,参照了网上很多资料,总算搞定!
1、首先在 / 目录下创建一个 mysql 目录 :[root@localhost /]# mkdir mysql
2、然后去mysql官网找到最新的mysql软件包 ,找到软件包的下载地址,详见下面两张图:
如上图,复制到下载链接后,即可在刚创建的mysql目录下下载压缩包:
[root@localhost mysql]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz
下载完成后解压:[root@localhost mysql]# tar zxvf mysql-5.7.21.tar.gz
3、解压完成后,安装一些mysql需要的工具:
[root@localhost mysql]#yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
[root@localhost mysql]#yum install bison
4、进入到解压的mysql目录里去,准备参数进行编译
注意:‘-’ 一个也不能少 ; “=” 左右两边都不要加空格,跟下面保持一致即可
[root@localhost mysql]#cd mysql-5.7.21
[root@localhost mysql-5.7.21]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据文件保存目录
-DSYSCONFDIR=/etc \ 配置文件(my.cnf) 目录
-DMYSQL_USER=mysql \ 制定mysql用户,默认为mysql
-DWITH_MYISAM_STORAGE_ENGINE=1 \ 这4个是设置支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \ 启用readline库支持(提供可编辑命令行)
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \ 制定mysql.sock路径,这个我等下会在配 置文件里把改掉
-DMYSQL_TCP_PORT=3306 \ 端口3306
-DENABLED_LOCAL_INFILE=1 \ 启用本地数据导入支持
-DENABLE_DOWNLOADS=1 \ 是否要下载可选的文件,为1表示启用, 将下载谷歌所使用的测试单元套件进行测试
-DWITH_PARTITION_STORAGE_ENGINE=1 \ 支持数据库分区
-DEXTRA_CHARSETS=all \ 启用额外的字符集类型,默认为all
-DDEFAULT_CHARSET=utf8 \ 指定默认字符集为urf-8
-DDEFAULT_COLLATION=utf8_general_ci \ 设定默认排序规则(urf8_general_ci快速/urf8_unicode_ci/准确)
-DWITH_DEBUG=0 \ 禁用debug,默认为禁用
-DMYSQL_MAINTAINER_MODE=0 \ 不启用开发环境(如果启用,此选项会导 致编译器警告成为错误)
-DWITH_SSL:STRING=bundled \ 启用SSL库支持,支持SSL协议(安全套 接层)
-DWITH_ZLIB:STRING=bundled \ 启用lib库支持
-DDOWNLOAD_BOOST=1 \ 最好两个与mysql无关,安装需要
-DWITH_BOOST=/usr/local/boost
5、编译,这个需要的时间比较长,耐心等待。
[root@localhost mysql-5.7.21]# make
6、安装
[root@localhost mysql-5.7.21]# make install
7、安装之后进行配置
cd /usr/local/mysql (进入安装目录)
groupadd mysql (添加一个mysql组)
useradd -r -g mysql mysql (添加mysql用户并属于mysql组)
chown -R mysql:mysql ./ (进入mysql安装包中,设置属主和属组)
8、执行初始化 (在安装目录下执行下面的命令)
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
user: 用户
basedir: 安装路径
datadir: 数据保存路径 这几个参数在上面编译中都有
初始化成功后,mysql会随机分配一个root用户密码,把这个记录下来
9、然后开启支持SSL连接(在安装目录下执行下面的命令)
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
10、进入 support-files 目录 执行下面两条命令,拷贝文件到其他相关目录
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
注意:从mysql-5.7.18.tar.gz 开始, support-files目录下已经没有my-default.cnf文件、/etc/my.cnf 文件也不存在;
这个时候我的做法是在support-files 目录下自己创建了 my-default.cnf 文件,然后用vi编辑器写入下面的内容到该文件:
#Foradviceon how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# ***DONOTEDIT THIS FILE. It‘s a template which will be copied to the
# *** default location during install, and will be replacedif you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading# andsetto the amount of RAMfor the most important data
#cachein MySQL.Startat 70% of total RAMfordedicated server,else10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turnon a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonlyset, remove the
# andsetas required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
11、使用vi编辑器编辑 my.cnf ,做如下图调整
[root@localhost mysql]# vi /etc/my.cnf
12、配置好后,启动mysql (此时的root所在目录是 /usr/local/mysql)
[root@localhost mysql]# bin/mysqld_safe --user=mysql &
13、登录mysql(此时的root所在目录是 /usr/local/mysql)
[root@localhost mysql]#bin/mysql -uroot -p
password 为mysql安装时初始化的密码
14、使用初始化密码登录成功后需要修改密码才能执行下面的操作
最后我们可以使用service mysql start|stop|restart 来管理mysql服务!
综上,centos上安装mysql就算大功告成啦~~
如果需要在windows上也能用终端navicat访问该数据库,则还需要做下面的配置:
1、先将mysql命令加入环境变量,方便全局使用, 使用vi 命令 编辑 /etc/profile 在末尾处加入下面两行代码:
PATH=$PATH:/usr/local/mysql/bin
export PATH
执行 命令source /etc/profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。
2、授权用户远程访问(此时的root所在目录是 /usr/local/mysql)
开启mysql服务: service mysql restart
登录mysql :mysql -uroot -p123456
mysql 环境执行下面两个命令:(详见上图)
使用 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
载入权限 :FLUSH PRIVILEGES;
3、接着在开启防火墙的3306端口 (下面的两个命令在 [root@localhost mysql]# 执行)
开启3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入设置 firewall-cmd --reload
4、现在navicat就可以访问虚拟机上的数据库啦~~