本文主要介绍了使用RPM和源码两种方式部署一个单节点mysql 5.7服务,实验环境为centos7
更新于 2021-03-21
RPM方式部署
卸载旧版本
首先检查是否存在旧的mysql:
1 | rpm -qa | grep -i mysql |
如果存在就需要卸载:
1 | rpm -ev [旧的mysql包名] |
下载
下载mysql5.7官方prm包
1 | wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar |
然后解压,可以看到解压出如下的一些安装包:
1 | tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar |
- mysql-community-client:客户端的安装包;
- mysql-community-server:服务端的安装包;
- mysql-community-devel:包含开发库文件的安装包;
- mysql-community-test:包含测试的安装包;
- mysql-community-embedded:嵌入式mysql安装包;
安装
一般情况下,只需要安装client和server安装包即可,当然其也会依赖其他库的安装包:
1 | rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm |
启动服务
启动mysql服务
1 | systemctl start mysqld.service |
获取初始密码
查看mysql日志,找到类似下面的这一行:
1 | cat /var/log/mysql.log |
mysql第一次运行的时候会初始化一个root用户并设置一个随机密码,这一行可以找到这个密码
修改密码并连接
可以通过下面的命令修改root密码并删除测试数据库和匿名用户
1 | # 设置root用户密码 |
mysql密码需要符合一定的密码规则,否则设置会失败
下面就可以连接mysql了:
1 | $ mysql -uroot -pRoot123? |
源码方式安装
依赖安装
安装依赖包:
1 | yum install -y make gcc gcc-c++ cmake bison-devel ncurses ncurses-devel |
下载源码包
首先下载mysql5.7源码包:
1 | wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz |
创建安装目录
创建安装目录和数据目录,安装目录一般放在 /usr/local/
下,数据目录使用单独的磁盘:
1 | mkdir /usr/local/mysql |
安装boost库
从mysql5.7开始,boost库是必须依赖的
1 | mkdir /usr/local/boost |
编译安装mysql
编译源码:
1 | tar zxf mysql-boost-5.7.26.tar.gz |
DCMAKE_INSTALL_PREFIX
:安装的根目录;DMYSQL_DATADIR
:数据目录;DSYSCONFDIR
:配置文件目录;DWITH_MYISAM_STORAGE_ENGINE=1
:编译myisam存储引擎,默认的存储引擎,不加也可以;DWITH_INNOBASE_STORAGE_ENGINE=1
:支持InnoDB存储引擎,这个也是默认安装的;DWITH_MEMORY_STORAGE_ENGINE=1
: 持MEMORY引擎;DWITH_READLINE=1
:使用readline功能;DMYSQL_UNIX_ADDR
:sock文件存放目录;DMYSQL_TCP_PORT=3306
:数据库端口;DENABLED_LOCAL_INFILE=1
:可以使用load data infile命令从本地导入文件;DWITH_PARTITION_STORAGE_ENGINE=1
: 安装数据库分区;DEXTRA_CHARSETS=all
: 支持所有字符集;DDEFAULT_CHARSET=utf8mb4
:默认字符集;DDEFAULT_COLLATION=utf8mb4_general_ci
:默认效验字符集排序规则,要和DDEFAULT_CHARSET
一起用;DWITH_BOOST=/usr/local/boost
:指定boost库位置,从5.7.5开始Boost库是必需的;
编译成功后进行安装:
1 | make && make install |
添加用户并初始化
1 | groupadd mysql |
观察初始化输出,找到类似于如下的一行:
1 | 2019-06-29T11:32:37.238756Z 1 [Note] A temporary password is generated for root@localhost: &leFGSPpM4sC |
这个是初始化设置的mysql默认root密码,需要暂时记住。
环境设置
设置环境变量:
1 | echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile |
设置mysql启动文件:
1 | cd /usr/local/mysql/support-files |
修改mysql启动脚本,设置数据目录和根目录:
1 | vim /etc/init.d/mysqld |
修改配置文件:
1 | vim /etc/my.cnf |
启动服务并连接
启动mysql:
1 | service mysqld start |
现在就可以使用前面获取到的默认密码登录数据库了,不过也可以使用下面的命令来重新设置密码及删除匿名用户和库:
1 | # 设置root用户密码 |