编译安装mysql5.7

2244人浏览 / 0人评论

一、打开官网下载mysql安装包

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

下载这俩个包

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html   官网安装说明

二、解压安装包

##我的安装包路径都在/opt,把俩个安装包解压之后发现只有一个,不要慌哈批,俩个会自动融入到一起的!!

[root@fxsczldzh ~]# cd /opt/

[root@fxsczldzh opt]# tar -zxf mysql-5.7.28.tar.gz 
[root@fxsczldzh opt]# tar -zxf mysql-boost-5.7.28.tar.gz 

三、安装依赖包

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

四、创建安装目录

[root@fxsczldzh opt]# mkdir /usr/local/mysql
[root@fxsczldzh opt]# mkdir /usr/local/mysql/data

[root@fxsczldzh opt]# mkdir /usr/local/mysql/run
[root@fxsczldzh opt]# mkdir /usr/local/mysql/logs
五、进行安装

[root@fxsczldzh mysql-5.7.28]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data -DDOWNLOAD_BOOST=1   -DWITH_BOOST=/opt/mysql-5.7.28/ -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 -DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1 

 

1、遇到的报错

解决方案:yum install ncurses-devel  openssl-devel -y

https://yq.aliyun.com/articles/670111

make & make install

安装完成!

五、完善基础配置

1、创建用户

[root@fxsczldzh mysql-5.7.28]# groupadd mysql
[root@fxsczldzh mysql-5.7.28]# useradd -g mysql  -s /sbin/nologin -M mysql
2、初始化mysql

                                       cd /usr/local/mysql/bin/

[root@fxsczldzh bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize

3、编辑配置文件

[root@fxsczldzh bin]# cat /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306
user = mysql 
# 设置mysql的安装目录
basedir=/usr/local/mysql
#mysql数据文件所在位置
datadir=/usr/local/mysql/data/
#临时目录 比如load data infile会用到
tmpdir=/usr/local/mysql/tmp/
##设置socke文件所在目录
socket=/usr/local/mysql/run/mysql.sock
#记录当前 mysqld 进程的 pid
pid-file=/usr/local/mysql/run/mysql.pid
#错误日志文件
log_error=/usr/local/mysql/logs/error.log
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#授权表中使用主机名了,只能使用IP
skip-name-resolve 
skip-grant-tables
#max_allowed_packet=12800074000
#时区
default-time_zone = '+8:00'
 

4、加载启动项

[root@fxsczldzh mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@fxsczldzh mysql]# chmod +x /etc/init.d/mysql

5、启动数据库

/etc/init.d/mysql start  

[root@fxsczldzh logs]# touch error.log
[root@fxsczldzh logs]# chown mysql:mysql error.log 
chown -R mysql:mysql data
chown -R mysql:mysql /usr/local/mysql/run

mkdir tmp

chown mysql:mysql tmp

再次启动,启动成功;

https://blog.csdn.net/shoubuliaolebu/article/details/44979147

6、进行连接

[root@fxsczldzh ~]# cp /usr/local/mysql/bin/mysql /usr/sbin/
[root@fxsczldzh ~]# mysql -uroot -p
连接成功;

 

全部评论