Linux | MySQL
MySQL 是 Oracle 旗下的一款 关系型数据库管理系统,它是稳定、开源、免费的数据库,并且被广泛应用。
一、安装
这里介绍的是 CentOS 环境,安装步骤如下:
- 下载安装
- 初始化
- 启动
- 开机启动
- 修改密码
- 创建用户
- 第三方工具访问
1.1 下载安装
步骤参考:CentOS 7安装MySQL 5.7.18。
嫌麻烦的话,也可用参考 yum
方式安装:CentOS7 通过YUM安装MySQL5.7。
首先进入 MySQL 下载页面,往下翻一页,可以看到:
做出你认为对的选择之后,点击下面的 Download
:
关于 RPM Bundle
,我认为这并不是必须下载的,因为它打包了所有的 MySQL 包,实际上像在 Windows 中安装一样,只需要选择 Server
部分就好,比如:
如果你认同 CentOS 7安装MySQL 5.7.18 的步骤,或者像我一样是 第一次安装,那么就选择 RPM Bundle
:
将上图中红色圈起来的链接,右键点击 复制,然后创建 MySQL 软件目录:
sudo mkdir /usr/local/mysql
cd /usr/local/mysql
使用链接地址下载压缩包:
sudo wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
解压在 /usr/local/mysql
目录下:
sudo tar -xvf mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
再逐个安装:
sudo rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-devel-5.7.22-1.el7.x86_64.rpm
遇到同样的错误:
搜索后得知,CentOS 7.4
的默认数据库已经不是 MySQL,那就按照博客中移除掉 冲突依赖:
sudo yum -y remove mariadb-libs-1:5.5.56-2.el7.x86_64
然后,继续执行...结果是顺利完成,没有再出现错误。
疑惑:为什么需要安装这么多包?只安装提供的 server 不行吗?*
这个疑惑有机会一定要验证一下,目前对这方面不了解,暂时搁置。
1.2 初始化
执行命令:
sudo mysqld –initialize
遇到问题:
博客中的解决办法是使用 root
用户创建 mysql
用户:
useradd mysql
但我发现 mysql
用户已存在,那可能是安装 MySQL 时自动创建的,先不管,找一下 my.cnf
文件:
mysql --help | grep 'my.cnf'
得到结果:
据说,上面列出的 my.cnf
文件是按顺序执行,因此选择 /etc/my.cnf
文件编辑。
在如图所示的地方添加 user=mysql
:
由于其他的 my.cnf
文件都不存在,那么就放过它们。
继续执行初始化命令,此时没有出错,查看 /var/log/mysqld.log
文件时,发现问题:
原来是博客内容有误,改正初始化命令为:
mysqld --initialize --user=mysql
如果报这样的错:
要让 root
用户删除 /var/lib/mysql
目录:
rm -rf /var/lib/mysql
再继续执行一下正确的初始化命令:
mysqld --initialize --user=mysql --explicit_defaults_for_timestamp
OK,大功告成!检查一下 cat /var/log/mysqld.log
终于看到密码:
这里是 MySQL 数据库的 root
用户密码,并非 Linux 的 root
用户,请勿混淆!
1.3 启动
经尝试网上多个博客的启动方式,都以失败告终,于是开始寻找 MySQL 的安装目录:
find | grep mysql
结果看到:
这说明 MySQL 在安装时,已经配置好了 启动脚本,那么只需要用这个命令启动:
service mysqld start
果然没错:
1.4 开机启动
通常默认开机启动,执行 systemctl status mysqld.service
可以证明这一点:
不需要的话,可以关闭:
systemctl disable mysqld.service
成功禁用开机启动:
1.5 修改密码
我们需要修改 MySQL 的 root
用户的密码,首先登陆进去:
mysql -u root -p
输入在 my.cnf
找到的密码,成功连接上:
修改密码,请将 password
替换为你自己的密码:
alter user 'root'@'localhost' identified by 'password';
密码要求:6 位长度以上,包含大小写字母、数字、标点符号。
1.6 创建用户
为了访问 MySQL,并且拥有一定的权限,那么应该创建一个普通用户。
一般来说,在本地机器上维护数据库,好过于每次去登陆云服务器,而我们又不可能开通 3306
端口,就只能通过 SSH 通道本地连接 MySQL,这里推荐一个国产软件:Navicat for MySQL
,具体下载和破解方式自行百度。
如图,连接并创建 play
用户成功:
这真是一个非常方便的运维工具。
总结
其实更推荐用包管理器来安装这些软件,比如 apt
、yum
等等。