Linux 下安装 Mysql 数据库
更新,Centos 7 离线安装 Mysql 5.7
近期的一个项目,需要使用 MySQL 5.7,但是甲方所提供的机器是不能访问外网环境的,所以只能通过离线安装的方式来搞,这里大概记录一下,备忘。
- MySQL 5.7 Linux 安装包下载:https://dev.mysql.com/downloads/mysql/5.7.html
选择 Linux - Generic
-> Compressed TAR Archive:(mysql-5.7.18-linux-glibc2.12-x86_64.tar.gz)
,版本按需下载即可;下面是具体的安装过程。
安装步骤
查询并卸载系统自带的数据库 Mariadb
1 | rpm -qa | grep mariadb |
创建用户和用户组
为了数据库管理,对于安装的 MySQL 数据库,生产上我们都会建立一个 mysql用户和mysql用户组。
1 | # 先检查mysql用户和用户组有没有被使用 |
文件上传
如果甲方提供了 访问 VPN ,那么则通过 VPN 建立连接;或者通过甲方提供的方式将文件上传到指定的机器上
1 | # 解压安装包,解压后会有一个mysql-5.7.18-linux-glibc2.12-x86_64.tar.gz包 |
授权
按照下面的操作执行
1 | cd /usr/local/ |
配置文件的创建和配置信息
默认这个配置文件是不存在的,需要创建,并且填入配置信息;在 /usr/local/mysql/ 目录下创建文件并编辑
1 | cd /usr/local/mysql/ |
具体配置信息大致如下
1 | [mysql] |
安装数据库
进入 /usr/local/mysql/ 目录下,执行安装操作。
1 | # 执行安装命令 |
安装后,如下信息表示安装成功
2023-03-23 14:32:16 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld –initialize
2023-03-23 14:32:20 [WARNING] The bootstrap log isn’t empty:
2023-03-23 14:32:20 [WARNING] 2023-03-23T06:32:16.437877Z 0 [Warning] –bootstrap is deprecated. Please consider using –initialize instead
2023-03-23T06:32:16.438432Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2023-03-23T06:32:16.438439Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
安装成功后设置文件及目录权限:
1 | # 在 /usr/local/mysql 目录下执行 |
启动 mysql
/etc/init.d/mysqld restart
我的机器上是出现了如下的报错
1 | ERROR! MySQL server PID file could not be found! |
如果 /usr/local/mysql/data/localhost.localdomain.err 这个文件存在,就进去看一下具体原因,如果没有就按照以下步骤执行。
1 | # 创建 /var/lib/mysql/ |
配置环境变量,在配置文件中 export PATH=$PATH:/usr/local/mysql/bin
1 | # 修改配置文件 /etc/profile |
然后重新启动即可。
获取 mysql 安装后的初始密码
1 | [root@localhost mysql]# cat /root/.mysql_secret |
登录 mysql 遇到的问题
1 | mysql -uroot -p |
解决方案:
1、首先保证在 my.cnf 文件中 socket 的配置如下:
1 | ... |
2、对 /tmp/mysql.sock 和 /var/lib/mysql/mysql.sock 建立软连接
1 | ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock |
修改密码
1 | # 执行语句如下 |
添加远程访问权限
1 | # 切换到 mysql 数据库 |
设置开机自启动服务
1 | # 将mysqld服务加入到系统服务 |
此时如果通过 远程访问还是访问不通,则可能是因为防火墙的问题;这里有两种解决办法
- 直接关闭防火墙
1
systemctl stop firewalld
- 开通防火墙,放开对 3306 的拦截
1
firewalld-cmd --zone=public --add-port=3306/tcp --permanent
Centos 7 在线安装 Mysql 5.7
最近在搞 Apollo ,熟悉的同学应该知道,Apollo 需要依赖 Mysql。本以为很容易搞定,但是却踩了一路坑,眼高手低,也参考了网上很多博客,果然是残缺就是美!本篇就简单记录一下这个过程,以便后面参考。
环境
| 软件 | 版本|
| ———— | ———— |
|linux | centOS 7|
| jdk | 8 |
| mysql| 5.7.24 |