centos7.2 mysql5.7 源码安装并编译
1、 卸载系统自带的mariadb*
[root@centos7_4 ~]# yum -y remove mariadb* boost-*
2、 安装依赖包
[root@centos7_4 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
3、 下载源码包
[root@centos7_4 ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.20.tar.gz
4、 解压源码包
[root@centos7_4 ~]# tar zxf mysql-boost-5.7.20.tar.gz -C /usr/local/src/
5、 配置编译并安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-5.7.20/boost/boost_1_59_0 -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql
编译并安装
[root@centos7_4 mysql-5.7.20]# make
[root@centos7_4 mysql-5.7.20]# make install
6、 创建数据库用户和数据目录
[root@centos7_4 ~]# useradd -M -s /sbin/nologin -r mysql
[root@centos7_4 ~]# mkdir -p /usr/local/mysql/data #创建数据存储目录
[root@centos7_4 ~]# chown -R mysql.mysql /usr/local/mysql/ #更改属主数组为MySQL
7、 配置my.cnf文件
[root@centos7_4 ~]# vim /etc/my.cnf #以下是简单配置
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8
pid-file=/usr/local/mysql/mysqld.pid
log-error=/var/log/mysqld.log
8、 配置MySQL启动脚本
[root@centos7_4 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #复制启动脚本到/etc/init.d
[root@centos24 mysql-5.7.20]# ll /etc/init.d/mysqld #默认拥有执行权限
-rwxr-xr-x 1 root root 10576 Jun 7 19:27 /etc/init.d/mysqld
[root@centos7_4 mysql]# chkconfig --add mysqld #添加到开机启动项
[root@centos7_4 mysql]# chkconfig mysqld on #添加开机自启动
[root@centos7_4 mysql]# vim /etc/init.d/mysqld #修改路径
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
[root@centos7_4 mysql]# vim /etc/profile #配置环境变量
export PATH=$PATH:/usr/local/mysql/bin
[root@centos7_4 mysql]# source /etc/profile #加载变量立即生效
配置MySQL启动脚本,这个和上面的二选一都可以
[root@centos7_4 system]# vim mysqld.service
[Unit]
Description=MySQL DBMS
[Service]
LimitNOFILE=10000
Type=simple
User=mysql
Group=mysql
PIDFile=/usr/local/mysql/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data
ExecStop=/bin/kill -9 $MAINPID
[Install]
WantedBy=multi-user.target
[root@centos7_4 system]# chmod +x mysqld.service #添加执行权限
[root@centos7_4 system]# systemctl enable mysqld.service #设置开机启动
9、 安全初始化数据库
[root@centos7_4 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #这样初始化之后,数据库是没有密码的
如果要想初始化之后分配临时密码,可以将--initialize-insecure 红色部分去掉,初始化之后,可以分配到一个临时密码。
[root@centos7_4 ~]# /etc/init.d/mysqld start #启动数据库
Starting MySQL. SUCCESS!
[root@centos7_4 ~]# mysql -uroot #登录数据库修改root用户密码
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix