MySQL源码安装

MySQL源码安装

​ 下载链接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

一、创建 mysql 用户
#1)创建用户
useradd --home-dir=/home/mysql -m mysql

#2)删除用户
userdel -r mysql

#3)修改用户密码
passwd mysql
二、清除旧 MySQL 安装
​ 1、查看yum是否安装过mysql
yum list installed mysql*

#yum卸载 
yum remove mysql-community-client mysql-community-common mysql-community-libs mysql-community-libs-compat mysql-community-server mysql57-community-release

rm -rf /var/lib/mysql  
rm /etc/my.cnf

2、查看rpm是否查看安装过mysql
rpm -qa | grep -i mysql

#rpm 卸载
rpm -e mysql57-community-release-el7-9.noarch
rpm -e mysql-community-server-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.17-1.el7.x86_64
rpm -e mysql-community-common-5.7.17-1.el7.x86_64
rpm -e mysql-community-client-5.7.17-1.el7.x86_64
cd /var/lib/  
rm -rf mysql/
3、清除余项
whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

#删除上面的文件夹
rm -rf /usr/bin/mysql
4、查看系统的服务
chkconfig --list | grep -i mysql
chkconfig --del mysqld
三、源码安装 MySQL
1、安装依赖
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison libaio-devel git openssl-devel
2、编译安装 MySQL

​ 1) 解压 MySQL安装包并创建所需目录

tar -zxvf mysql-5.7.29.tar.gz

cd mysql-5.7.29
mkdir -p /home/mysql/mysql
mkdir -p /home/mysql/mysqldata
chown mysql:mysql /home/mysql/*

​ 2) 编译

cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql/mysql \
-DMYSQL_DATADIR=/home/mysql/mysqldata \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost

​ 参数详解

# DCMAKE_INSTALL_PREFIX					安装路径 
# DMYSQL_DATADIR 						数据库目录 
# DMYSQL_UNIX_ADDR						修改 socket 的默认路径 
# DDEFAULT_CHARSET						修改默认的字符集 
# DDEFAULT_COLLATION					修改默认的校对规则 
# DDOWNLOAD_BOOST						是否下载boost包 
# DWITH_BOOST							boost目录 

​ 成功编译

...
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/mysql-5.7.29

​ 3) 安装

make && make install

​ 成功安装

...
-- Installing: /home/mysql/mysql/./README-test
-- Up-to-date: /home/mysql/mysql/mysql-test/mtr
-- Up-to-date: /home/mysql/mysql/mysql-test/mysql-test-run
-- Installing: /home/mysql/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Up-to-date: /home/mysql/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Installing: /home/mysql/mysql/mysql-test/lib/My/SafeProcess/Base.pm
-- Installing: /home/mysql/mysql/support-files/mysqld_multi.server
-- Installing: /home/mysql/mysql/support-files/mysql-log-rotate
-- Installing: /home/mysql/mysql/support-files/magic
-- Installing: /home/mysql/mysql/share/aclocal/mysql.m4
-- Installing: /home/mysql/mysql/support-files/mysql.server
[root@localhost mysql-5.7.29]#
3、用 mysql 账号创建 my.cnf
[client]
socket=/home/mysql/mysql.sock
[mysqld]
symbolic-links=0
server_id                  = 1353306
default_storage_engine    = Innodb
user                      = mysql
basedir                    = /home/mysql/mysql
datadir                    = /home/mysql/mysqldata
tmpdir                    = /home/mysql/tmp
socket                    = /home/mysql/mysql.sock
pid_file                  = /home/mysql/mysql.pid
character_set_server      = utf8
collation_server          = utf8_general_ci
log_error                  = /home/mysql/mysqllog/error/error.log
log_bin                    = /home/mysql/mysqllog/binlog/mysql-binlog
innodb_log_group_home_dir  = /home/mysql/mysqllog/innodb
slow_query_log_file        = /home/mysql/mysqllog/slowlog/slow-query.log
slave_parallel_type=LOGICAL_CLOCK								
slave_parallel_workers=4												
slave_preserve_commit_order=on									
skip_slave_start=on															
sync_binlog=1																		
master-info-repository=TABLE										
relay-log-info-repository=TABLE									
relay-log-recovery=ON														
log_slave_updates=on														
gtid_mode=on																		
enforce-gtid-consistency=on											
binlog_format=row																
sync_binlog = 1                                 
innodb_flush_log_at_trx_commit = 1              

[mysqld_safe]
log-error=/home/mysql/mysqllog/error/error.log

​ 创建所需文件夹

[mysql@localhost ~]$ mkdir -p /home/mysql/mysqllog/error
[mysql@localhost ~]$ mkdir -p /home/mysql/mysqllog/binlog
[mysql@localhost ~]$ mkdir -p /home/mysql/mysqllog/innodb
[mysql@localhost ~]$ mkdir -p /home/mysql/mysqllog/slowlog
[mysql@localhost ~]$ mkdir -p /home/mysql/tmp
4、使用root账号进行初始化
/home/mysql/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql --datadir=/home/mysql/mysqldata
5、用 mysql 账号启动 MySQL
#启动
/home/mysql/mysql/bin/mysqld_safe --defaults-file=/home/mysql/my.cnf &

#停库
/home/mysql/mysql/bin/mysqladmin -uroot -p shutdown -S /home/mysql/mysql.sock
6、登库并修改密码
#登库
/home/mysql/mysql/bin/mysql -uroot -p -S /home/mysql/mysql.sock

#修改密码
alter user 'root'@'localhost' identified by 'hadoop';
7、创建软连接
ln -s /home/mysql/mysql/bin/ ~
8、导入 sakila 库
#导入 sakila 数据库方法一
/home/mysql/mysql/bin/mysql -uroot -p -S /home/mysql/mysql.sock
source /home/mysql/tmp/sakila-db/sakila-data.sql
source /home/mysql/tmp/sakila-db/sakila-schema.sql


#导入 sakila 数据库方法二
/home/mysql/mysql/bin/mysql -uroot -p -S /home/mysql/mysql.sock < sakila-schema.sql
/home/mysql/mysql/bin/mysql -uroot -p -S /home/mysql/mysql.sock < sakila-data.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值