文章目录
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