编译 安装 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 /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;