赞
踩
主要是指mac苹果电脑下的java所需开发环境搭建。
用的homebrew方式安装mysql,安装步骤,安装过程中遇到的一些小问题及解决方式。
主要介绍mysql的安装和navicat连接过程中所踩到的一些坑,当时是搜索了很多解决方式才可以使用的,这里记一下,以便遇到同样问题的朋友可以参考。
可以选择直接从mysql网站上下载mysql的安装包下载安装可以参考这个链接文章dmg安装包方式安装mysql,但是博主用的是homebrew所以用的是命令行直接下载的方式(Homebrew是一款包管理工具,目前支持macOS和linux系统。可以很方便的实现软件、依赖包的安装)。
brew install mysql
然后就遇到了
原因:由于homebrew当初安装的时候没有切换为国内的数据源,所以下载外网的资源比较卡,导致下载失败。
解决方法:切换为国内数据源。
在iterm2的命令行窗口输入一下命令后点击回车确定即可
切换国内数据源命令
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
切换后更新
brew update
此切换方式参照下列博主的博文https://brew.idayer.com/,使用其换源工具即可,安装homebrew也可以参照这个网站快速安装。
换成国内的数据源之后再重新运行安装命令,简直是丝般顺滑,一下子就安装上了。出现下面这句话就是安装上了。
We’ve installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
我们已经在没有 root 密码的情况下安装了您的 MySQL 数据库。 为了确保它运行:请进行mysql的安全性校验
如果之前安装到一半有影响的话可以使用homebrew卸载mysql后再重新安装。
homebrew卸载mysql语句(/usr/local/var/mysql为mysql的homebrew工具下默认安装目录)
sudo rm -rf /usr/local/var/mysql
直接输入语句
mysql_secure_installation
直接发现报错
Error: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
错误:无法通过 socket ‘/tmp/mysql.sock’ 连接到本地 MySQL 服务器 (2)
这里有两种方法,
1、一种是先启动mysql后在执行上述语句,一般启动后即可进行安全设置。
启动mysql服务
mysql.server start
mysql服务的控制语句为:启动、关闭、重启
mysql.server stop
mysql.server start
mysql.server restart
2、第二方法是找到它提示中的连接文件。
博主第一个方法没有生效,然后进行另一个方法。
报错是没有找到对应的sock文件。
我们需要知道这个sock文件是干嘛的:他就相当于是个连接器,没有找到这个连接器就无法与mysql服务联通
mac上面关于mysql的配置文件是my.cnf,这里面会指定mysql所需的mysql.sock文件的路径地址。这个mysql.sock应该是mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体,它比tcp快。通常遇到这个问题的原因就是你的mysql server没运行起来。
————————————————
版权声明:此为博客园博主「胡杰」的文章
原文链接:https://www.cnblogs.com/jackhub/p/3728777.html
mysql配置文件my.cn的路径
打开my.cnf文件,里面的内容是
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
找到mysql的sock文件的路径,也可以全局搜索mysql,默认路径是/usr/local/var/mysql/,如果有做修改的话,每个人的路径可以不同,找到你自己的关于mysql.sock文件的路径。
mysql的sock文件的路径
修改my.cnf文件的内容,将sock文件的地址进行指定
# Default Homebrew MySQL server config
[client]
socket = /usr/local/var/mysql/mysql.sock
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
socket = /usr/local/var/mysql/mysql.sock
然后再执行安全设置语句mysql_secure_installation
,直到出现以下语句就说明链接上了。
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve
security. It checks the strength of password and allows the users to
set only those passwords which are secure enough. Would you like to
setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: y
点击y确定,然后可以开始输入密码
New password:
Re-enter new password:
删除默认无密码用户
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
删除远程登录,由于个人数据库不联网外用所以不禁止,可以根据需要选择是否关闭。
Disallow root login remotely? (Press y|Y for Yes, any other key for
No) : no
删除默认自带的test数据库
Remove test database and access to it? (Press y|Y for Yes, any other
key for No) : y
输入密码
mysql -u root -p
mysql的使用
//创建数据库: CREATE DATABASE db_name; //查看编码格式: SHOW CREATE DATABASE db_name; //查看当前服务器下的数据库列表: SHOW DATABASES; //修改编码格式: ALTER DATABASE db_name CHARACTER SET utf8; //删除数据库: DROP DATABASE db_name; //选择数据库: USE db_name; //显示当前数据库: SELECT DATABASE(); //----------------------------------------------------------------------------- //创建数据表(创建字段名): CREATE TABLE table_name ( column_name data_type, ...... ) //显示数据表列表: SHOW TABLES [FROM db_name]; //显示数据表的结构: SHOW COLUMNS FROM tb_name; //修改数据表: //添加一列: ALTER TABLE tb_name ADD column_name data_type; //添加多列: ALTER TABLE tb_name ADD (column_name data_type,…); //删除列: ALTER TABLE tb_name DROP column_name,DROP column_name,…… //----------------------------------------------------------------------------- //插入记录(创建字段下的数据): INSERT tb_name (col_name,...) VALUES(val,...); //更新记录UPDATE: UPDATE tb_name SET age = age + 5, sex = 2 WHERE username='TOM'; //删除记录DELETE: DELETE FROM tb_name WHERE id=2; //查找记录: SELECT expr,... FROM tb_name; //排序 SELECT * FROM stu ORDER BY 笔试 LIMIT 0,8
到这里mysql的软件是安装上了。
但是一般不直接使用mysql,而是使用navicat等可视化软件操作数据库。
打开mysql输入配置信息
测试连接的时候
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor)
意思就是:用户 ‘root’@‘localhost’ 访问被拒绝(使用密码)
但是已经配置了root的用户密码的,明明在终端可以正常使用,但是在mysql连接上又不行了。
然后勉强找了一种方式先解决当前问题,在上述的my.cnf配置文件里面把“非密码用户”又添加回来,这样的话可以直接使用。但是可能有安全问题,
Tips:这个有其他解决方式的可以留言哈。
打开my.cnf配置文件添加skip语句。
# Default Homebrew MySQL server config
[client]
socket = /usr/local/var/mysql/mysql.sock
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1
socket = /usr/local/var/mysql/mysql.sock
skip-grant-tables
正常来说,然后navicat不输入密码也可以访问了。
但是又报错了
Mac navicat连接mysql数据库错误
2003 - Can’t connect to MySQL server on ‘127.0.0.1’ (61 “Connection refused”)
翻译:无法连接到“127.0.0.1”上的 MySQL 服务器(61“连接被拒绝”)
原因:这又是mysql的两种连接方式的问题了。
解决方法:需要打开navicat连接的高级配置,勾选套接字,里面填上在my.cnf里面的sock文件的路径。
navicat连接的高级配置
以为可以了,然后又出现了一个新的错误
ERROR 2000 (HY000): Unknown MySQL error
翻译:未知mysql错误
一个未知错误,迷惑了,然后找到一个博主的解决方式。
navicat连接的SSL配置,勾选ssl配置
然后终于,连接成功了
新建数据库、新建表成功
主要是由于mysql两种连接方式不同导致的连接差异,理解一下mysql.sock的作用,就好解决一些了。
用的homebrew方式安装mysql,没想到中间过程也会遇到这么多的小麻烦,把这些遇到的问题总结了一下,希望能帮到遇到同样问题的筒子们。
使用Homebrew安装mysql(mac)https://www.jianshu.com/p/d3f7e7402449
快速安装homebrewhttps://brew.idayer.com/
安装homebrew问题解决https://zhuanlan.zhihu.com/p/90508170
Mac 安装MySQLhttps://my.oschina.net/u/4311223/blog/4102743
[Mac] 记录使用Homebrew安装Mysql全过程 https://blog.csdn.net/lkxlaz/article/details/54580735
Mac上用 homebrew 装 mysql,完美解决 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 报错问题https://www.jianshu.com/p/5525156d73b9
mysql ERROR 2002 (HY000): ‘/tmp/mysql.sock’ 问题解决https://cloud.tencent.com/developer/article/1468919
解决MySQL登录ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor)问题https://blog.csdn.net/lisongjia123/article/details/57418989
关于Navicat for MySQL连接本地部署数据库报ERROR 2000 (HY000): Unknown MySQL error https://blog.csdn.net/csdnms1994/article/details/104782650/
Mac navicat连接mysql数据库错误2003 - Can’t connect to MySQL server on ‘127.0.0.1’ (61 “Connection refused”) https://blog.csdn.net/yxd504/article/details/106076291
mysql 中的socket 即 mysql.sock的作用https://www.cnblogs.com/jackhub/p/3728777.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。