一、安装Mysql

1、官网下载mysql的tar包(提示:建议vpn环境下载)

2、解压并安装tar包

# 移动解压后的二进制包到安装目录

sudo mv mysql-5.7.19-osx10.9-x86_64 /usr/local/mysql

# 更改 mysql 安装目录所属用户与用户组

cd /usr/local

sudo chown -R root:wheel mysql

# 初始化数据库cd /usr/local/mysql

sudo bin/mysqld --initialize --user=mysql (提示:初始化数据库时会随机生成root@localhost用户的随机密码,用此密码登陆数据库)

# 开启mysql服务端程序# 启动sudo support-files/mysql.server start# 重启sudo support-files/mysql.server restart

# 停止

sudo support-files/mysql.server stop

# 检查 MySQL服务端 运行状态

sudo support-files/mysql.server status

# 通过自带的Mysql Client 连接数据库cd /usr/local/mysql/bin./mysql -u root -p

# 修改root@localhost用户的密码mysql> alter user 'root'@'localhost' identified by 'new-password';# 将root用户的host改为通配符%,并刷新权限,使root@127.0.0.1等也可以登录

mysql> update user set user.Host = '%' where user.User = 'root';

mysql> flush privileges;

3、将mysql的字符集设置为utf8

# 更改 mysql 的启动配置文件sudo vi /etc/my.cnf

[client]

port = 3306

default-character-set = utf8

[mysqld]

user = mysql

port = 3306

default-storage-engine = Innodb

character-set-server = utf8

collation-server = utf8_general_ci

init_connect = 'SET NAMES utf8'

# 重启mysqld后,进入mysql,查看字符集

mysql> show variables like "%character%";

二、安装Navicat

参考教程:

ps : 一定要下载该教程提供的12.0.22安装包,官网下载地址提供的安装包bug已经被修复,包内容中没有rpk文件,无法修改公钥

三、将远程IP下数据库的内容(包括结构和数据)复制到本地数据库完成数据库环境的搭建

使用mysql-cp-tool工具程序复制数据,这种方法比在Navicat中导出数据再在本地数据库中通过sql脚本导入数据要来得方便,因为导出数据成sql脚本时要将选中数据库中所有数据一起导出,而用程序复制时复制记录的条数可配置,且在复制过程中出错(一般是构造表的时候)能追踪出错原因。

示例:

错误一:

构造表时出现MySQLSyntaxErrorException: Invalid default value for timestamp(3).

原因:

mysql> show variables like "sql_mode";

sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

NO_ZERO_DATE:在非严格模式下,可以插入形如“0000-00-00 00:00:00”的非法日期,MySQL数据库仅抛出一个警告。而启用该选项后,MySQL数据库不允许插入零日期,插入零日期会抛出错误而非警告。

解决方案:

mysql> set global sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

mysql> commit;

错误二:

拷贝数据时出现java.sql.SQLException: Cannot convert value '2018-10-08 22:42:03.973' from column 103 to TIMESTAMP.

Caused by: java.lang.IllegalArgumentException: nanos > 999999999 or < 0

原因:

项目中使用的MySQL JDBC driver版本过低,无法对该类型string串进行处理。

解决方案:

若是低版本的driver,例如mysql-connector-java-5.1.10-bin, 切换为高版本驱动包例如mysql-connector-java-8.0.15.jar之后就能解决问题。

四、运行程序时出现SQLException

错误一:

org.springframework.jdbc.BadSqlGrammarException:

### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'column1' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

### The error may involve defaultParameterMap

### The error occurred while setting parameters

### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'column1' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'column1' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

原因:ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面。

解决方案:

将mysql的sql_mode中的ONLY_FULL_GROUP_BY设置去除。

mysql> set global sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

mysql> commit;

mysql数据库开发环境_MacOS下搭载开发环境之数据库篇(Mysql + Navicat)相关推荐

  1. MySQL数据库,从入门到精通:第十四篇——MySQL视图详解

    MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...

  2. MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解

    MySQL数据库,从入门到精通:第十二篇--MySQL数据类型详解 第 12 章_MySQL数据类型精讲 1. MySQL中的数据类型 2. 整数类型 2. 1 类型介绍 2. 2 可选属性 2. 2 ...

  3. linux里面搭建php环境,Linux下搭建PHP环境

    该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译 ...

  4. linux离线配置qt环境,Linux下配置QT环境

    一.下载Qt源码包到本机,然后解压缩 #tar zxvf qt-x11-opensource-src-4.3.2.tar.gz -C /usr/local //将qt-x11-opensource-s ...

  5. 苹果系统安装python环境_mac下python相关环境搭建(python开发必经之路之mac快速上手)...

    小结 本篇文章是对上一篇文章<MacOS的小结及终端shell的选择和相关配置全过程(zsh+iTerm2+powerline全解)>的一些拓展和总结,对于相关问题的详细解释和拓展点的标注 ...

  6. matlab开发环境,Windows 下开源开发环境的搭建

    因项目需要在 Windows 下测试开发的程序, 所以研究了一下如何在 Windows 下搭建基于 gcc 的开源开发环境. MSYS2 是 Windows 下的一款开源软件构建和发布平台, 网址为  ...

  7. vs2010开发php,VS2010 下 开发C++

    VS2010 下 开发C++ 1, 导入头文件 #include 当打" 2, 枚举 enum 和 C# 中不同 例: enum type { a  = 1, b = 2, c = 3 }; ...

  8. Linux编译程序源码环境,Linux下对nodejs环境进行源码编译并部署云应用

    Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言. 该环境安装非常简单,这里 ...

  9. mysql c测试程序_Linux平台下从零开始写一个C语言访问MySQL的测试程序

    Linux 平台下从零开始写一个 C 语言访问 MySQL 的测试程序 2010-8-20 Hu Dennis Chengdu 前置条件: (1) Linux 已经安装好 mysql 数据库: (2) ...

最新文章

  1. Redis 高级特性(2)—— 发布 订阅模式
  2. python 2x list 里面的中文打印效果为unicode 编码 的处理方法
  3. js仿QQ中对联系人向左滑动、滑出删除按钮的操作
  4. oracle nvarchar2,varchar2,char,nchar说明
  5. python的moviepy库 打包 报错: ‘moviepy.audio.fx.all‘ has no attribute ‘audio_fade 的解决办法
  6. 网络货运平台要智能,安全的数据底座少不了
  7. Android UI自定义Spinner下拉框(用popuwindow实现)-转
  8. 互联网公司上演反腐风暴;GitHub CEO 对断供表示无能为力;程序员面试锦集| 开发者周刊...
  9. 第20章 TCP的成块数据流
  10. Linux命令解释之groupadd,groupdel,groupmod,groupmems
  11. window无法启动windows Firewall
  12. android gps原始数据格式,Android编程获取GPS数据的方法详解
  13. springboot对JPA的支持
  14. 新元宇宙奇科幻小说每周连载《地球人奇游天球记》第十二回金星挖矿
  15. 如何定义和使用一个 Lambda 表达式
  16. vscode1.65.2 + anaconda 在python拓展为2022.2.1924087327版本上的问题及解决
  17. C# 将两个DataTable合并
  18. 【恒指早盘分析】期货交易绝非你想的那么简单
  19. 如何查看ActiveX控件的UUID?
  20. Android下获取FPS的几种方法

热门文章

  1. 零基础小白10分钟用Python搭建小说网站!网友:我可以!
  2. 微软 SQL Server 2019 将免费支持 Java;Rancher Labs获2500万美元融资;腾讯云进军日本市场……...
  3. 一文详解微服务架构的数据设计
  4. SpringBoot 整合 Spring Cloud Alibaba Nacos 连通性+负载均衡
  5. ThreadPoolExecutor中的keepAliveTime详解
  6. Windows搭建SonarQube_Mysql
  7. git commit提交代码时提示LF与CRLF转换问题 error
  8. halo多人正在连接服务器,在线人数过低 《光晕2》PC版多人服务器下月关闭
  9. android 获取通讯录全选反选_Xamarin.Forms读取并展示Android和iOS通讯录 TerminalMACS客户端...
  10. C++中继承与虚函数示例