二进制包部署MySQL(Ubuntu 18.04)
- 下载二进制包
https://downloads.mysql.com/archives/community/
- 解压,创建相关用户和目录
# 解压二进制包
root@ubuntu-lotus-2:/opt# tar -xvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
root@ubuntu-lotus-2:/opt# cd mysql-5.7.32-linux-glibc2.12-x86_64/
root@ubuntu-lotus-2:/opt/mysql-5.7.32-linux-glibc2.12-x86_64# ls
bin docs include lib LICENSE man README share support-files
root@ubuntu-lotus-2:/opt/mysql-5.7.32-linux-glibc2.12-x86_64# cd bin/
root@ubuntu-lotus-2:/opt/mysql-5.7.32-linux-glibc2.12-x86_64/bin# ls
innochecksum myisamlog mysqladmin mysql_config mysqld_multi mysql_embedded mysqlpump mysql_ssl_rsa_setup mysqlxtest resolve_stack_dump
lz4_decompress myisampack mysqlbinlog mysql_config_editor mysqld_safe mysqlimport mysql_secure_installation mysqltest_embedded perror zlib_decompress
myisamchk my_print_defaults mysqlcheck mysqld mysqldump mysql_install_db mysqlshow mysql_tzinfo_to_sql replace
myisam_ftdump mysql mysql_client_test_embedded mysqld-debug mysqldumpslow mysql_plugin mysqlslap mysql_upgrade resolveip
## 可以看到二进制包已经编译好了所有的命令
## 创建mysql用户和数据目录
root@ubuntu-lotus-2# useradd mysql -s /sbin/nologin -M
## 整理目录,方便使用
root@ubuntu-lotus-2:/opt# ls
go1.16.4.linux-amd64.tar.gz mysql-5.7.32-linux-glibc2.12-x86_64 mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
root@ubuntu-lotus-2:/opt# mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql-5.7.32
root@ubuntu-lotus-2:/opt# mv mysql-5.7.32 /usr/local/
root@ubuntu-lotus-2:/usr/local# ln -s mysql-5.7.32 mysql
## 安装相关依赖工具(具体要根据报错提示是否需要安装其他依赖工具)
root@ubuntu-lotus-2:/usr/local/mysql/bin# apt-get -y install libncurses5
root@ubuntu-lotus-2:/usr/local/mysql/bin# apt-get -y install libaio-dev
- 初始化与登录
root@ubuntu-lotus-2:/usr/local/mysql/bin# ./mysqld --defaults-file=/mysql/config/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
2021-11-16T02:37:46.888721Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-11-16T02:37:47.077585Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-11-16T02:37:47.099371Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-11-16T02:37:47.175695Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 2f1eddd7-4686-11ec-89a0-000c29100bdc.
2021-11-16T02:37:47.178458Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-11-16T02:37:47.754210Z 0 [Warning] CA certificate ca.pem is self signed.
2021-11-16T02:37:47.935768Z 1 [Note] A temporary password is generated for root@localhost: 5zeq#i*M<*Qi
## 初始化完成后会有初始密码
###--defaults-file=/mysql/config/my.cnf 这个参数必须紧跟 mysqld,作为第一个参数,否则会出错
## 使用默认的启动文件
root@ubuntu-lotus-2:/usr/local/mysql/support-files# cp mysql.server /etc/init.d/mysqld
root@ubuntu-lotus-2:/usr/local/mysql/support-files# chmod +x /etc/init.d/mysqld
root@ubuntu-lotus-2:/usr/local/mysql/support-files# /etc/init.d/mysqld start
Starting mysqld (via systemctl): mysqld.service.
## 登录
root@ubuntu-lotus-2:/usr/local/mysql/bin# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.32
.....
## 第一次登录要修改默认密码
mysql> alter user user() identified by "123456";
Query OK, 0 rows affected (0.00 sec)
至此,使用二进制包部署Mysql就完成了,相对于源码编译安装,更快捷;相对于直接用源安装,更清晰。