1. 首页
  2. 数据库

二进制安装mysql-5.7.21

 
1、上传或下载源码包
安装依赖:yum install -y cmake make ncurses-devel ncurses gcc gcc-c++
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz
tar zxf mysql-5.7.21.tar.gz
cd mysql-5.7.21/
2、预编译配置:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql57/run/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0 \
-DDOWNLOAD_BOOST=0 \
-DWITH_BOOST=/usr/local/boost
#-DDOWNLOAD_BOOST=1的时候表示下载BOOST。这里我配置的DDOWNLOAD_BOOST=0表示不下载,因为我提前下载好了。
#BOOST库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 强调支持跨平台开发的依赖库。可以提前下载至指定的/usr/local/boost目录中,就不用预编译的时候再去下载,因为我在预编译下载的时候timeout了。
#mysql BOOST包:  https://www.wzstyle.cn/315.html
预编译完成,看到:
Manually-specified variables were not used by the project:
MYSQL_USER
WITH_BIG_TABLES
WITH_READLINE
WITH_XTRADB_STORAGE_ENGINE
— Build files have been written to: /root/mysql-5.7.21
3、编译、安装,最好保证有2个G的内存
make -j4 && make -j4 install
#mysql 5.7 版本配置文件和执行启动文件都需要自己写和拷贝。
#Centos 系统上默认有/etc/my.cnf 文件,需要替换或者删除该文件,重新写入mysql5.7 版的配置文件。
#mysql 5.7 版本默认密码是在第一次启动之后会在日志中生成,第一次登录需要使用默认密码,然后再去修改。
4、配置用户和用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql     #创建mysql用户,加入到mysql组,禁止mysql用户登录系统
mkdir -p /data/mysql                                #创建mysql数据库存放目录
chown -R mysql:mysql /data/mysql           #设置mysql数据库目录权限
mkdir /usr/local/mysql57/run                    #创建socket存放目录
cd /usr/local/mysql57/ && chown -R mysql:mysql ./      #设置目录权限
5、修改mysql配置文件vim /etc/my.cnf,基础简单配置如下,根据自己需要增减配置
[mysqld]
basedir=/usr/local/mysql57
datadir=/data/mysql
port=3306
socket=/usr/local/mysql57/run/mysql.sock
log-error=/data/mysql/mysql-error.log
pid-file=/data/mysql/mysql.pid
symbolic-links=0
!includedir /etc/my.cnf.d
6、初始化mysql并启动
/usr/local/mysql57/bin/mysqld –initialize –user=mysql –datadir=/data/mysql –basedir=/usr/local/mysql57
#进行MySQL数据库的初始化,指定启动用户,指定数据目录,指定配置目录,初始化的功能就是当前数据目录中创建基本mysql的数据库管理表和账号。
初始化完成之后会在当前的返回代码或日志中,最后一行看到默认的初始密码,复制下来。root@localhost: j#yOLw>uB5ie
#配置主配置文件之后配置命令连接和脚本启动
ln -s /usr/local/mysql57/bin/* /usr/bin/
\cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/mysqld #将mysql服务默认启动文件mysqld,拷贝到/etc/init.d/目录。
chmod +x /etc/init.d/mysqld      #增加可执行权限
chkconfig –add mysqld              #将mysqld 加入Linux操作系统的系统服务
chkconfig –level 35 mysqld on   #将mysqld 服务在init3 和init5 运行级别上开机自启
#编辑启动文件/etc/rc.d/init.d/mysqld,补充完整或加入下面两行:
basedir = /usr/local/mysql57      #mysql程序安装路径
datadir = /data/mysql                #Mysql数据库存放目录
systemctl start mysqld               #启动服务
systemctl status mysqld             #查看状态
7、测试登陆
mysql -uroot -p #回车后输入初始化时或在日志中看到的密码j#yOLw>uB5ie
alter user ‘root’@localhost identified by “123456”; #登录后需要立即修改root本地登陆密码
show databases; #展示当前库
grant all on *.* to ‘www’@’%’ identified by ‘123456’; #创建并授权一个远程用户
flush privileges;

 

原创文章,作者:wz,如若转载,请注明出处:https://www.wzstyle.cn/818.html

发表评论

邮箱地址不会被公开。 必填项已用*标注