MySQL数据库安装
MySQL数据库安装
着重安装、基础SQL语句操作。
一、介绍
MySQL是一款开源的关系型数据库,应用非常广泛。自从被Oracle收购,有闭源风险,所有有MariaDB 作为社区分支。
二、CentOS7安装MySQL5.7
有多种安装方式,源码安装、配置YUM 源安装。这里以mysql 5.7 为例。
2.1 源码编译安装
1 | hostnamectl set-hostname source-mysql |
2.1.1 安装前准备
- 关闭防火墙
1 | systemctl stop firewalld |
- 关闭SELinux
1 | setenforce 0 |
- 配置
yum
1 | yum repolist |
- 清理之前的环境
- 清理之前的
mysql包
1 | yum -y remove mariadb mariadb-server mariadb-libs mariadb-devel |
- 删除mysql用户
1 | userdel -r mysql |
- 删除
myqsl相关目录
1 | rm -rf /var/lib/mysql |
- 创建mysql用户
1 | useradd -r mysql -M -s /bin/false |
2.1.2 下载安装
- 安装编译工具
1 | yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake |
- 下载源码包
1 | wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz |
- 解压
1 | tar xf mysql-boost-5.7.27.tar.gz |
- 编译安装前检查,及参数设置
1 | cd mysql-5.7.27 |
-DWITH_BOOST:依赖Boost库,告诉cmakeBoost库的位置。-DCMAKE_INSTALL_PREFIX:安装路径-DSYSCONFDIR: 配置文件的路径-DMYSQL_DATADIR:数据存储的路径-DPID_FILEmysqld:服务的PID路径-DINSTALL_MANDIR:帮助文档的路径-DMYSQL_TCP_PORT: TCP端口-DMYSQL_UNIX_ADDR:UNIX套接字文件路径-DDEFAULT_CHARSET:默认字符集-DEXTRA_CHARSETS:所有额外的字符集-DDEFAULT_COLLATION:默认字符集排序-DWITH_READLINE:让MySQL命令行支持命令历史、行编辑等交互功能-DWITH_SSL:指定SSL支持来源为系统,而不是MySQL自带的版本-DWITH_EMBEDDED_SERVER:启用嵌入式服务器的构建。可以把MySQL嵌入应用-DENABLED_LOCAL_INFILE:允许从本地文件导入数据-DWITH_INNOBASE_STORAGE_ENGINE:启用InnoDB存储引擎
最终执行结果如下
1 | .... |
- 编译安装,大概半个小时
1 | make && make install |
最终效果如下
1 | ... |
2.1.3 基础配置
- 修改文件夹权限,初始化,会显示
root密码
1 | cd /usr/local/mysql |
1 | [root@source-mysql mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data |
- 新建配置文件
1 | vim /etc/my.cnf |
1 | [client] |
- 临时启动
1 | /usr/local/mysql/bin/mysqld --user=mysql & |
验证
1 | ps aux |grep mysql |
登录验证,需要上面的密码
1 | /usr/local/mysql/bin/mysql -uroot -p |
- 修改root密码
1 | /usr/local/mysql/bin/mysqladmin -u root -p'旧密码' password '新密码' |
- 加入环境变量
1 | cat >> /etc/profile <<EOL |
加载环境变量
1 | source /etc/profile |
- 登录
1 | mysql -uroot -p |
2.1.4 systemd管理
- 杀掉
mysql进程
1 | ps aux |grep mysql |
- 编辑
service文件
1 | cat > /etc/systemd/system/mysqld.service <<EOL |
- 重载
systemd配置文件
1 | systemctl daemon-reload |
- 开机自启mysql,名字与上一步的名称对应
1 | systemctl enable --now mysqld |
- 登录验证
1 | mysql -uroot -p |
2.2 YUM安装
1 | hostnamectl set-hostname yum-mysql |
2.2.1 安装前准备
- 关闭防火墙
1 | systemctl stop firewalld |
- 关闭SELinux
1 | setenforce 0 |
- 配置
yum
1 | yum repolist |
- 清理之前的环境
- 清理之前的
mysql包
1 | yum -y remove mariadb mariadb-server mariadb-libs mariadb-devel |
- 删除mysql用户
1 | userdel -r mysql |
- 删除
myqsl相关目录
1 | rm -rf /var/lib/mysql |
2.2.2 YUM安装
- 配置MSQL安装源
1 | wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm |
- 导入GPG密钥,验证密钥文件存在
1 | # rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql |
- 安装
1 | yum -y install mysql-community-server |
1 | ... |
- 启动
1 | systemctl enable mysqld --now |
- 查找临时密码
1 | grep password /var/log/mysqld.log |
1 | [root@yum-mysql ~]# grep password /var/log/mysqld.log |
- 修改密码,编译安装的不能弱密码
1 | mysqladmin -u root -p'Polish21..' password 'Root21..' |
或者登录mysql 后
1 | alter user root@localhost identified by '新密码'; |
- 验证
1 | mysql -uroot -p |
2.3 两种安装方式对比
| 两种安装方式对比 | 源码安装 | YUM源安装 |
|---|---|---|
| 配置文件 | /etc/my.cnf,可自定义 |
/etc/my.cnf |
| 数据库目录 | /var/local/mysql/data,可自定义 |
/var/lib/mysql |
| systemd管理 | 需要自行配置 | 默认支持 |
| 初始化 | 手动 | 自动 |
| 难易程度 | 一般 | 简单 |
| 安装所需时间 | 大约半个小时 | 几分钟 |
三、CentOS7安装MySQL80/84
1 | hostnamectl set-hostname yum-mysql8 |
3.1 YUM安装
- 卸载旧的组件
1 | yum remove mariadb* -y |
- 添加MySQL官方的仓库
从MySQL官网 或MySQL repo服务器找对应系统的 rpm 源
mysql80
1 | wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm |
mysql84
1 | https://dev.mysql.com/get/mysql84-community-release-el7-2.noarch.rpm |
- 验证已经添加仓库
1 | yum repolist enabled | grep mysql |
1 | [root@yum-mysql8 ~]# yum repolist enabled | grep mysql |
- 安装
MySQL-Server
1 | yum install mysql-community-server -y |
- 开机启动
1 | systemctl start mysqld |
- 验证启动成功
1 | systemctl status mysqld |
启动成功效果
1 | [root@yum-mysql8 ~]# systemctl status mysqld |
- 从日志中获取临时密码
1 | grep 'temporary password' /var/log/mysqld.log |
1 | [root@yum-mysql8 ~]# grep 'temporary password' /var/log/mysqld.log |
- 登录
mysql后改密码
1 | mysql -u root -p |
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; |
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root21..'; |
- 验证新密码
1 | mysql -u root -p'Root21..' |
1 | [root@yum-mysql8 ~]# mysql -u root -p'Root21..' |
四、debian系安装MySQL
| 选项 | 说明 | 适用场景 |
|---|---|---|
mysql-8.0 |
MySQL 8.0 版本的普通服务器 | 大多数生产环境,稳定可靠 |
mysql-innovation |
MySQL 最新创新版本(实验性功能) | 测试新特性,不建议生产环境 |
mysql-8.4-lts |
MySQL 8.4 LTS(长期支持) | 适合希望用新功能但又要稳定的环境 |
mysql-cluster-8.0 |
MySQL Cluster 8.0 | 用于需要高可用和分布式集群的场景 |
mysql-cluster-innovation |
MySQL Cluster 最新创新版本 | 测试分布式集群新功能 |
mysql-cluster-8.4-lts |
MySQL Cluster 8.4 LTS | 高可用集群的长期支持版本 |
None |
不安装服务器,只配置客户端等工具 | 只想用 MySQL 客户端或工具,不安装数据库 |
- MySQL官网仓库,安装
deb包时可以文本图形化选择不同的数据库版本。
1 | wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb |
- 安装最新版本
1 | sudo apt install mysql-server |
- 安全设置
1 | sudo mysql_secure_installation |
1 | ubuntu@sg-oracle-2c12g-01:~$ sudo mysql_secure_installation |
- 设置密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; |
- 登录验证
1 | mysql -u root -p |
五、封面图
