源码安装mysql5.7

源码安装mysql

1.下载相应依赖包

我们需要ncurses-devel、gcc、bzip等
yum -y install ncurses-devel gcc-* bzip2-* bison

下载cmake

cmake是用来配置mysql文件用的

方法一 直接用yum

yum -y install camke
或者

方法二 使用源码安装cmake

官网下载:cmake.org

wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz
tar xf cmake-3.16.2.tar.gz`
cd cmake-3.16.2
./configure
make
make install

下载mysql

官网:oracle.com
这里推荐使用国内镜像
我用的是搜狐镜像http://mirrors.sohu.com/mysql/,这里我安装的是mysql-boost-5.7.23.tar.gz版本,mysql中自带boost文件;当然,如果你的mysql里面没有boost文件,可以去网上下载boost,5.7的mysql推荐下载boost_1_59_0版本。

2.安装mysql

在安装mysql之前我们需要提前创建好mysql的数据目录,提前创建好mysql用户

useradd -s /sbin/nologin -r mysql
mkdir -pv /usr/local/mysql/data

cmake配置mysql

切换到mysql源码目录下,用cmake配置
5.7版本mysql需要用cmake编译,不能用configure编译了

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDOWNLOAD_BOOST=0 \
-DWITH_INNODBBASE_STORAGE_ENGINE=1 \
-DENABLE_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_EMBEDED_SERVER=0 \
-DWITH_BOOST=boost

解释下

-DCMAKE_INSTALL_PREFIX=用户配置文件目录
-DMYSQL_DATADIR=用户数据目录
-DMYSQL_UNIX_ADDR=指定mysql.sock的路径
-DDOWNLOAD_BOOST=0 不下载boost
-DWITH_INNODBBASE_STORAGE_ENGINE=1 指定默认存储引擎
-DENABLE_LOCAL_INFILE=1 允许客户端使⽤local data 
-DEXTRA_CHARSETS=all ⽀持所有字符集
-DDEFAULT_CHARSET=utf8 默认编码utf8
-DDEFAULT_COLLATION=utf8_general_ci 数据库校对规则
-DMYSQL_USER=mysql 管理用户mysql
-DWITH_DEBUG=0   关闭debug
-DWITH_EMBEDED_SERVER=0   ⽣成⼀个libmysqld.a(.so)的库,这个库同时集成了mysql服务与客户端API
-DWITH_BOOST=boost  指定boost的路径

注意

  1. 每行结尾\为换行用的,注意,和行尾字符有空格。
    当初把-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock\接在一起最后配置时候就出错了,导致只能重新安装mysql
  2. 执行完程序,没有出现error即代表没问题,warning不要紧
  3. 最后一个,DWITH_BOOST=boost 如果下载的mysql不带boost,则
tar xf boost_1_59_0.tar.bz2
mkdir /usr/local/boost
mv boost_1_59_0 /usr/local/boost

在/usr/local下创建一个文件夹boost,将解压的boost直接拷贝进去,
同时,cmake配置时,将最后一行代码改为-DWITH_BOOST=/usr/local/boost

编译和安装

mysql编译很慢,最好将虚拟机配置调高一点。

make 
make install

虚拟机是多核时可以使用-j选项使用多核

make -j4  使用4核编译
make install -j4  使用4核安装

3.配置mysql

创建授权目录

cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chown mysql.mysql /usr/local/mysql/ -R

一定要给权限和使用者,不然mysql无法启动
创建链接

ln -sf /usr/local/mysql/bin/* /usr/bin/
ln -sf /usr/local/mysql/lib/* /usr/lib/
ln -sf /usr/local/mysql/libexec/* /usr/local/libexec
ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1
ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8

修改mysql配置文件

[mysqld]
basedir=/usr/local/mysql/   
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

basedir:mysql目录
datadir:mysql数据目录
socket:mysql连接文件目录,
log-error:mysql错误记录
pid-file:mysql运行pid文件
注意:
1.如果没有这个文件,试试在/etc/my.cnf.default
cp /etc/my.cnf.default /etc/my.cnf
2.一般经常出现Can 't connect to local MySQL server through socket XXX
多半是丢失套接字文件,无法连接,试试重启reboot.
也有可能是/usr/local/mysql/mysql.sock没有给写权限
chmod 777 /usr/local/mysql/mysql.sock给他所有权限

初始化mysql

安装好mysql后要记得初始化

/usr/local/mysql/bin/mysqld --initialize \
--user=mysql \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data/

初始化过后,最后一条信息为mysql默认用户名和密码
示例

root@localhost: gUuNdvMa(9mg

root为管理员用户名
gUuNdvMa(9mg为密码

4.开启mysql服务

/etc/init.d/mysql start
查看服务器mysql开启了3306端口要验证mysql是否开启
lsof -i :3306
注意:防火墙不能封了这个端口

修改mysql管理员密码

mysql_secure_installation
将默认密码输入即可,然后根据需求选择后续

启动mysql

mysql -uroot -pqwaszx
-u后面为用户名
-p后面为密码

4.删除mysql

如果mysql安装不成功,需要重装
删除方法

关闭mysql

ps -A|grep mysql 查看mysql服务是否打开,第一排为进程号
kill -9 38712 kill杀死mysql服务,-9代表最严厉,38712为进程号
杀死所有mysql进程

删除mysql文件

find / -name mysql 查找mysql文件
根据查到的mysql文件,用rm全部删除

rm -rf /usr/bin/mysql
rm -rf /usr/local/mysql
rm -rf /usr/local/mysql/data/mysql
rm -rf /usr/local/mysql/include/mysql
rm -rf /usr/local/mysql/bin/mysql

即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值