编译 安装 MySQL
Centos7.6 + MySQL5.7.34
下载地址:https://dev.mysql.com/downloads/mysql/
下载源码包
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.34.tar.gz
tar -zxvf mysql-boost-5.7.34.tar.gz
创建用户
# 创建用户组和用户,不允许登录
groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin mysql
创建相关目录文件
# 安装目录
mkdir /usr/local/mysql && chown mysql:mysql /usr/local/mysql
# 数据存放目录
mkdir /var/lib/mysql && chown mysql:mysql /var/lib/mysql
# 日志目录文件
touch /var/log/mysql.log && chown -R mysql:mysql /var/log/mysql.log
# 进程
mkdir /var/run/mysqld && chown -R mysql:mysql /var/run/mysqld
预编译
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/var/lib/mysql
-DSYSCONFDIR=/etc
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_unicode_ci
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DENABLED_PROFILING=1
-DMYSQL_TCP_PORT=3306
-DWITH_DEBUG=0
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=boost
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql :安装路径
-DMYSQL_DATADIR=/var/lib/mysql :数据文件存放位置
-DSYSCONFDIR=/etc :my.cnf路径
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock :连接数据库socket路径
-DEXTRA_CHARSETS=all :安装所有的字符集
-DDEFAULT_CHARSET=utf8mb4 :默认字符
-DDEFAULT_COLLATION=utf8mb4_unicode_ci :排序集
-DWITH_MYISAM_STORAGE_ENGINE=1 :支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 :支持InnoDB引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 :安装支持数据库分区
-DENABLED_LOCAL_INFILE=1 :允许从本地导入数据
-DENABLED_PROFILING=1 :
-DMYSQL_TCP_PORT=3306 :端口
-DWITH_DEBUG=0 :
-DDOWNLOAD_BOOST=1 :允许下载
-DWITH_BOOST=boost :本地boost路径
编译安装
make && make install
编辑配置文件
vi /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysql.server]
default-character-set=utf8mb4
[client]
# 设置客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置 mysql数据库的数据的存放目录(MySQL8.0+ 不需要以下配置,系统自己生成即可,否则有可能报错)
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 物理内存过小设置
innodb_buffer_pool_size=64M
# 日志和进程
log-error=/var/log/mysql.log
pid-file=/var/run/mysqld/mysqld.pid
symbolic-links=0
explicit_defaults_for_timestamp=true
#skip-grant-tables
初始化MySQL
# 初始化MySQL
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize
# 创建软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 添加到系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 启动mysql
chkconfig --add mysqld
chkconfig mysqld on
systemctl start mysqld
ps -ef | grep mysql
启动
# 查看初始密码
cat /var/log/mysqld.log | grep password
# 登录并修改密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
# 开启远程访问
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
flush privileges;