Linux,Mac下MySQL的安装及一些知识点的整理

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Linux,Mac下MySQL的安装及一些知识点的整理

Linux下载安装#


在服务器上下载的话,需要安装Mysql5.7相关的yum源


wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm


安装刚下载的rpm包


rpm -ivh mysql80-community-release-el7-3.noarch.rpm


确保yum源中生效的是我们刚刚添加进来的5.7版本


yum repolist all | grep mysql


结果如下图, 很显然,我默认生效的依赖是mysql8.0 , 所以需要修改配置



命令:


vim /etc/yum.repos.d/mysql-community.repo


修改成这样:



ok, 开始安装


yum -y install mysql-community-server


启动服务:


# centos6
service mysql stop/start
# centos6 7
systemctl stop/start/restart mysqld.service


其他零散的知识点#


在华为云上按上面的安装步骤,可以通过 whereis my 查看到配置文件的位置


[root@139 ~]# whereis my
my: /etc/my.cnf


这个my.cnf中有mysql进程相关的配置,比如刚才安装的mysql的my.cnf就长下面这样。


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


有时候我们想配置让mysql支持无密登陆


或者像上面那样我们刚安装了一台mysql,也不知道root的密码是多少,可以像下面这样,在my.cnf中的 [mysqld] 模块中添加 skip-grant-tables 参数实现无密登陆


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables


还是上面的情况,假设机器依然是centos7,我们安装完mysql后偏偏想用root账户密码登陆mysql,那root的默认密码在哪里查看呢?


grep 'temporary password' /var/log/mysqld.log


这个密码很难记,然后我们可以像下面这样修改密码


alter user 'root'@'localhost' identified by 'newPassword';


如果我们设置的newPassword太简单了,它会像下面这样提示我们密码不够强大

Your password does not satisfy the current policy requirements

于是我们就得使用下面的命令修改规则


set global validate_password_policy=LOW;


重启,重复上面的操作。

于是你就能本机轻松使用root登陆了


如果mysql不是在你的本机,而是在远程服务器,你会发现有时明明账号密码都正确,但是你就是不能远程登陆上去。很可能是因为我们使用的这个账号就不允许远程登陆。


mysql的用户信息存放在 mysql/user表下;如下图,查看这个表中的部分内容。


下图中的host如果为localhsot,说名root账户仅能在本地登陆。


我的已经改成 % ,支持本地登陆和远程登陆。



拓展知识:mysql.user 中的Host列不同值的含义 https://www.cnblogs.com/liuhaidon/archive/2019/09/12/11511129.html


通过命令修改:


# 1. 连接数据库
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';


DataGrip想连接mysql, 需要下载相应的驱动, 如下图:




Mac下安装#


如果你的电脑mac,可以参考这个大佬的笔记安装mysql:点击查看详情


上面的大佬中的笔记有如需要说一下的地方:



知道这一点,下次再安装完mysql后,然后直接打开控制台输入mysql -V却发现,咦?怎么说不认识这个命令? 难道是我没安装成功吗?(纯洁的微笑)


当然你按照上面大佬博文中的教程将mysql安装到mac上后。然后使用如下命令启动mysql:


sudo mysql.server start


如何关闭mysql?

  1. 简单粗暴的通过 ps aux | grep mysql找到mysql的进程id,然后 kill -9 pid强杀
  2. 也可以通过上面的脚本 sudo mysql.server stop终止mysql


然而root的密码你还是不知道。貌似你还是登陆不上去啊?


那你可以这样做:在上面配置的support-file文件中添加启动参数skip-grant-tables



然后你就能免密登陆了(免密登陆,它让你输入密码,你直接敲回车就能进去,然后你要做的第一件事就是去改密码)


刷新一下权限表:新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­


flush privileges


执行命令修改root密码:


alter user 'root'@'localhost' identified by 'root';


查询my.cnf中定义的端口:


>select @@port;
+--------+
| @@port |
+--------+
|   3306 |
+--------+


再说一个小技巧:可以帮助我们快速查看到mysql都使用了哪些配置文件。


ps aux | grep mysql


如下:(当然这是在mysql已经启动的情况下)


MacBook-Pro:~ root# ps aux | grep mysql
root             39669   0.0  0.0  4285448    808 s005  S+    7:32PM   0:00.00 grep mysql
_mysql           39097   0.0  0.6  4689984  47620 s005  S     7:16PM   0:00.58 /usr/local/mysql/bin/mysqld 
--basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data 
--plugin-dir=/usr/local/mysql/lib/plugin 
--user=mysql 
--skip-grant-tables 
--log-error=MacBook-Pro.local.err 
--pid-file=/usr/local/mysql/data/mysqld.local.pid
root             38998   0.0  0.0  4288076    936 s005  S     7:16PM   0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe 
--skip-grant-tables 
--datadir=/usr/local/mysql/data 
--pid-file=/usr/local/mysql/data/mysqld.local.pid
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL LIKE 子句
总结 vue3 的一些知识点:MySQL LIKE 子句
|
6天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
13 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
92 1
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
113 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
175 0
|
1月前
|
关系型数据库 MySQL Linux
Linux服务器安装MySQL
Linux服务器安装MySQL
|
1月前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL NULL 值处理
总结 vue3 的一些知识点:MySQL NULL 值处理
|
1月前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL 连接的使用
总结 vue3 的一些知识点:MySQL 连接的使用
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库