lczalh


  • 首页

  • 归档

MAC MyBatis访问MySQL 8 报错consider upgrading MySQL client

发表于 2019-04-27

原因是:安装MySQL 8过程中的Authentication Method这一配置过程,基于不同的加密方式。

1
2
3
4
5
6
7
8
// 登录MySQL
mysql -u root -p
// 更改加密方式 (666666为mMySQL密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '666666' PASSWORD EXPIRE NEVER;
// 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '666666';
// 重启MySQL
mysql.server restart

2.常见问题

2.1 MySQL 8 driver为:com.mysql.cj.jdbc.Driver

1
2
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and
manual loading of the driver class is generally unnecessary.

2.2 url中没有设置useSSL=false

1
WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements <br>SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate<br> property is set to 'false'.You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate<br> verification.

2.3 url中没有设置serverTimezone=UTC

1
2
The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 
serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

2.4 url中参数没有用;拼接 & -> &

1
The reference to entity “useSSL” must end with the ‘;’ delimiter.

3. MySQL 8 连接配置

1
2
3
4
<property name="driver" value="com.mysql.cj.jdbc.Driver"/> 
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;characterEncoding=utf8&amp;useUnicode=true&amp;useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>

MAC 安装Tomcat

发表于 2019-04-18

1. 下载Tomcat 如图

markdown

2. 解压并用重命名为Tomcat

3. 用终端(Terminal) 进入 $ cd Tomcat/bin

4. 启动Tomcat $ sudo ./startup.sh

markdown

5. 关闭Tomcat $ ./shutdown.sh

markdown

MAC 显示或隐藏.git目录

发表于 2019-04-17

1. 显示.git目录:$ defaults write com.apple.finder AppleShowAllFiles TRUE

2. 隐藏.git目录:$ defaults write com.apple.finder AppleShowAllFiles FALSE

3. 重启Finder:$ killall Finder

4. 当你的git仓库中还存在另一个git仓库B,提交时报错changes not staged for commit,解决方法:进入仓库B中删除.git文件夹,在回到仓库根目录重新提交代码即可

MySQL的基本使用

发表于 2019-04-16

markdown

1. DDL(数据定义语言)

1.1 操作数据库

1.1.1 增

创建数据库:

1
2
方式一:CREATE DATABASE 数据库名; -- 例:CREATE DATABASE mysql;
方式二:CREATE DATABASE 数据库名 CHARSET 编码; -- 例:CREATE DATABASE mysql CHARSET utf8;

1.1.2 删

删除数据库:DROP DATABASE 数据库名; -- 例:DROP DATABASE mysql;

1.1.3 改

修改正在使用的数据库:USE 数据库名; -- 例:USE mysql;

1.1.4 查

查询正在使用的数据库:SELECT DATABASE();
查询mysql中的所有数据库:SHOW DATABASES;
查询某一个数据库的详细信息:SHOW CREATE DATABASE 数据库名; -- 例:SHOW CREATE DATABASE mysql;

1.2 操作数据库表

1.2.1 增

创建表:

1
2
3
4
5
6
7
8
9
10
CREATE TABLE 数据库名(
字段名 数据类型(长度) 约束,
字段名 数据类型(长度) 约束
);
例:
CREATE TABLE student(
sid INT PRIMARY KEY, -- 主键约束
sname VARCHAR(30),
sage INT
);

1.2.2 删

删除表:DROP TABLE 表名; -- 例:DROP TABLE student;

1.2.3 查

查看一个表的详细信息:DESC 表名; -- 例:DESC student;
查看所有表:SHOW TABLES;

1.2.4 改

修改表名:RENAME TABLE 表名 TO 新表名; -- 例:RENAME TABLE student TO studentTwo;

1.3 操作数据库表结构

1.3.1 增

向表中增加一列:ALTER TABLE 表名 ADD 字段名 数据类型(长度) 约束; -- 例:ALTER TABLE student ADD phone VARCHAR(30);

1.3.2 删

向表中删除一列:ALTER TABLE 表名 DROP 字段名; -- 例:ALTER TABLE student DROP phone;

1.3.3 改

修改表中的字段名:ALTER TABLE 表名 CHANGE 字段名 新字段名 数据类型(长度) 约束; -- 例:ALTER TABLE student CHANGE sname mname VARCHAR(30);
修改表中的字段中的变量类型和约束:ALTER TABLE 表名 MODIFY 字段名 数据类型(长度) 约束; -- 例:ALTER TABLE student MODIFY sname VARCHAR(10);
修改表的字符集:ALTER TABLE 表名 CHARACYER SET 编码; -- 例:ALTER TABLE student CHARACYER SET utf8;

2. DML(数据操作语言)

2.1 增

向表中插入一条数据(向表中插入所有字段可省略字段名):INSERT INFO 表名 (字段1,字段2) VALUES (值1,值2); -- 例:INSERT INFO student (name,age) VALUES ('张三',18);

2.2 删

删除表中的所有记录:DELETE FROM 表名; -- 例:DELETE FROM student;
删除表中的某一条数据:DELETE FROM 表名 WHERE 条件; -- 例:DELETE FROM student WHERE name='张三';

2.3 改

修改表中所有指定字段的信息:UPDATE 表名 SET 字段名='值'; -- 例:UPDATE student SET name='李四';
修改表中某一条数据的字段信息:UPDATE 表名 SET 字段名='值' WHERE 条件; -- 例:UPDATE student SET name='李四' WHERE age=18;

3. 约束

主键约束(修饰的字段必须唯一且不能为空):PRIMARY KEY
自动增长约束:AUTO_INCREMENT

4. 删除表所有数据的两种方式

方式一:DELETE FROM 表名; -- 例:DELETE FROM student;(但是自动增长的值不会重置为1)
方式二:TRUNCATE TABLE 表名; -- 例:TRUNCATE TABLE student;(先摧毁表,在重建表;自动增长的值会重置为1)

5. DQL(数据查询语言)

markdown
查询表中所有的数据:SELECT * FROM 表名; -- 例:SELECT * FROM student;
查询表中某个字段的数据:SELECT 字段名1,字段名2 FROM 表名; -- 例:SELECT name FROM student;
查询表中某个字段的数据并去重(存在多个字段时字段名1且字段名2相同时才会去重):SELECT DISTINCT 字段名1,字段名2 FROM 表名; -- 例:SELECT DISTINCT name FROM student;
别名查询:SELECT 字段名 AS 别名 FROM student; -- 例:SELECT name AS 姓名 FROM student;
查询表中某个字段的所有数据:SELECT * FROM 表名 WHERE 条件; -- 例:SELECT * FROM student WHERE name='张三';

iOS RxDataSources

发表于 2019-04-02

RxDataSource 的本质就是使用 RxSwift 对 UITableView 和 UICollectionView 的数据源做了一层包装

1. UITableView

数据源类型:RxTableViewSectionedReloadDataSource,RxTableViewSectionedAnimatedDataSource

2. UICollectionView

数据源类型:RxTableViewSectionedReloadDataSource,RxCollectionViewSectionedAnimatedDataSource

3. ModelType

模型类型:SectionModel,AnimatableSectionModel

4. 使用动画数据源,自定义模型需遵守IdentifiableType协议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class NewsListModel: Object,Mappable {
@objc dynamic var publishTime: String? // 发布时间
@objc dynamic var category: String? // 类型
@objc dynamic var source: String? // 来源
@objc dynamic var newsId: String? // 新闻ID
@objc dynamic var title: String? // 标题
@objc dynamic var newsImg: String? //新闻小图片url

required convenience init?(map: Map) {
self.init()
}

func mapping(map: Map) {
publishTime <- map["publishTime"]
category <- map["category"]
source <- map["source"]
newsId <- map["newsId"]
title <- map["title"]
newsImg <- map["newsImg"]
}
}

extension NewsListModel: IdentifiableType {
var identity: NewsListModel {
return self
}

typealias Identity = NewsListModel
}

5. Demo

iOS Alamofire实时检测网络状态

发表于 2019-03-28

实时检测网络状态

1. 创建全局NetworkReachabilityManager对象

1
let newsHomeNetworkReachabilityManager = NetworkReachabilityManager(host: "http://www.baidu.com")

2. 开启网络监控

1
newsHomeNetworkReachabilityManager?.startListening()

3. 监听网络变化

1
2
3
4
5
6
7
8
9
10
11
12
newsHomeNetworkReachabilityManager?.listener = { state in
switch state {
case .unknown:
LCZProgressHUD.showError(title: "似乎与网络断开了连接!")
break
case .notReachable:
LCZProgressHUD.showError(title: "似乎与网络断开了连接!")
break
case .reachable(_):
break
}
}

4. 不需要时停止监控

1
newsHomeNetworkReachabilityManager?.stopListening()

5. 其它常用属性

1
2
3
4
5
6
7
open var isReachable: Bool // 当前网络是蜂窝网络或者是WiFi连接

open var isReachableOnWWAN: Bool // 当前网络是通过蜂窝网络连接

open var isReachableOnEthernetOrWiFi: Bool // 当前网络是通过WiFi网络连接

open var networkReachabilityStatus: NetworkReachabilityStatus // 当前网络状态

6. 注意事项

6.1 NetworkReachabilityManager不能为局部变量,否则会提前释放

6.2 每次使用需new一个新的newsHomeNetworkReachabilityManager,否则只响应最后监控回调

iOS XcodeBuild打包ipa

发表于 2019-03-04

XcodeBuild是一个命令行工具,可以用来对Xcode工程或工作区进行编译、查找、分析、测试等各种操作

1. 进入项目的目录

$ cd /Users/tanitsubukousha/Desktop/GLGL /Users/tanitsubukousha/Desktop/GLGL: 为你的项目路径

2. 清除编译过程生成的文件

$ xcodebuild clean -$workspace $project_Name.$projectType -scheme $project_Name -configuration $configuration

1
2
3
4
$workspace:  project / workspace(CocoaPods)
$project_Name: 项目名称
$projectType: xcodeproj / xcworkspace(CocoaPods)
$configuration: Debug / Release

出现** CLEAN SUCCEEDED ** 则清除成功

3. 生成 .xcarchive 文件

$ xcodebuild archive -$workspace $project_Name.$projectType -scheme $project_Name -archivePath ./$project_Name.xcarchive
执行完后目录下会生成 $project_Name.xcarchive 文件。

4. 配置plist文件

在当前目录下创建一个app-store.plist appstore: 自定义名称
内容如下
markdown
4.1关于method内容

1
2
3
4
app-store,   #AppStore正式生产环境包
ad-hoc, #生产测试包
enterprise, #企业包
development #开发测试包

5. 打包ipa

$ xcodebuild -exportArchive -exportOptionsPlist app-store.plist -archivePath ./$project_Name.xcarchive -exportPath ./autoPackage -allowProvisioningUpdates

1
2
app-store.plist 创建的pislt文件
./autoPackage ipa存放的路径

打包成功 会在当前目录生成一个autoPackage文件夹
markdown

6. 打包脚本

XcodeprojShell

使用方法:

6.1 将以下文件放入项目目录

markdown

6.2 进入项目的目录

$ cd 你的项目路径

6.3 运行脚本

$ ./XcodeprojShell.sh 根据提示操作即可

7. 远程打包( 必须每次先获取keychain的访问权限)

$ security unlock-keychain -p $password /Users/$userName/Library/Keychains/Login.keychain

1
2
$userName 主机用户名
$password 主机密码

8. 对应用重签名

8.1 将得到的ceshi.ipa 进行解压 $ unzip ceshi.ipa

8.2 删除旧签名 $ rm -rf Payload/ceshi.app/_CodeSignature/

8.3 将 $ codesign -d --entitlements - Payload/XXX.app 命令打印的内容,创建entitlements.plist文件

8.4 签名 codesign -f -s "iPhone Distribution: XXX" --entitlements entitlements.plist Payload/ceshi.app

iOS Fastlane自动化打包ipa

发表于 2019-02-28

Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化你的工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布App。Fastlane文档

1. 安装Xcode命令行工具

安装命令: $ xcode-select --install
提示: xcode-select: error: command line tools are already installed, use "Software Update" to install updates 表示已经安装

2. 安装Fastlane

安装命令: $ sudo gem install fastlane -NV 或 brew cask install fastlane
检查是否安装成功 fastlane --version

3. 初始化Fastlane

cd到项目路径:$ cd /Users/tanitsubukousha/Desktop/GLGL
初始化Fastlane:$ fastlane init
markdown

1
2
3
4
1. 📸  Automate screenshots (自动化截图)
2. 👩‍✈️ Automate beta distribution to TestFlight (自动testfilght型配置)
3. 🚀 Automate App Store distribution (自动发布型配置)
4. 🛠 Manual setup - manually setup your project to automate your (需要手动配置内容)

我这里选择 4 等待一下会让你按回车 (共三次) 即安装成功!
在项目中会生成 fastlane文件夹、Gemfile、Gemfile.lock
fastlane文件夹:Appfile (存储有关开发者账号相关信息)、Fastfile (核心文件,主要用于 命令行调用和处理具体的流程)

4. 文件配置

4.1 打开Appfile文件 修改以下配置

markdown

4.2 打开Fastfile文件 修改以下配置

markdown

4.3 关于export_method方法

1
2
3
4
app-store,   #AppStore正式生产环境包
ad-hoc, #生产测试包
enterprise, #企业包
development #开发测试包

5. 证书管理插件

match是fastlane的一个功能组件, 能自动从苹果官方上下载证书和pp文件同步到我们的git仓库中
cd到项目路径:$ cd /Users/tanitsubukousha/Desktop/GLGL
安装命令: $ fastlane match init
markdown

5.1 先删除旧证书和pp文件

分别执行以下命令

1
2
$ fastlane match nuke development
$ fastlane match nuke distribution

5.2 生成证书和pp文件

cd到项目路径:$ cd /Users/tanitsubukousha/Desktop/GLGL
分别执行以下命令(首次执行时,会要求输入Git仓库密码,用来对证书进行加密,后续其他机器获取证书时使用该密码进行解密)

1
2
3
$ fastlane match development
$ fastlane match adhoc
$ fastlane match appstore

6. 打包ipa

打包命: $ fastlane test test是Fastfile文件中的lane名称
markdown

7. 问题

7.1 Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild.

Xcode 9 之后禁止其直接访问钥匙串, 导致持续集成时执行 xcode build 会出现找不到证书或证书配置文件。修改 fastlane 配置文件来解决
markdown
export_xcargs: "-allowProvisioningUpdates"

mac OS 搭建Hexo个人博客

发表于 2019-02-11

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。Hexo文档

1. 博客效果图

markdown

2. 创建GitHub仓库

markdown

Respository name 中的lczalh.github.io 的lczalh 一定与前面的Owner 一致

3. 安装Node.js

Node.js下载
验证是否安装: $ node -v

4. 安装Git

$ brew install git
验证是否安装: $ git --version

5. 安装Hexo

$ sudo npm install hexo-cli -g

6. 创建博客

$ hexo init lczalh.github.io lczalh.github.io为文件夹名称 可自定义
执行成功后,会创建出一个名为 lczalh.github.io 的文件夹

基础配置: 打开文件位置 lczalh.github.io/_config.yml

1
2
3
4
5
6
7
title: lczalh    // 博客名称
author: Liu Chao Zheng // 你的名字
language: zh-Hans // 中文
theme: new-vno // 主题名称
deploy:
type: git // Git发布
repo: https://github.com/lczalh/lczalh.github.io.git // 刚才创建的Github仓库

7. 更改主题

进入上一步创建的文件夹: $ cd lczalh.github.io
安装主题: $ git clone https://github.com/monniya/hexo-theme-new-vno.git themes/new-vno

主题配置 更多主题

8. 写博客

博客路径: lczalh.github.io/source/_posts 在这里创建你的第一篇博客 例如创建: 2019-2-12 hexo搭建.md 内容如下:

1
2
3
4
5
6
7
8
---
layout: post
title: "mac OS 搭建Hexo个人博客"
date: 2019-02-11 18:00:41
tags: 博客
---

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可 利用靓丽的主题生成静态网页。[Hexo文档](https://hexo.io/zh-cn/docs/ "Hexo文档")

9. 测试是否正常

启动测试服务: $ hexo s 在浏览器中输入https://localhost:4000 访问

10. 安装自动部署发布工具

$ sudo npm install hexo-deployer-git --save

11. 发布博客

切换到root用户(有权限,跳过此行): $ sudo -s
发布博客: $ hexo clean && hexo g && hexo d

每次写完博客,执行下这两个命令就可以了

12. 错误

1.WARN No layout: index.html
解决方案: 安装/更新主题

1
2
$ cd lczalh.github.io
$ git clone https://github.com/monniya/hexo-theme-new-vno.git themes/new-vno

12
Liu Chao Zheng

Liu Chao Zheng

少一点抱怨,多一点努力

19 日志
5 标签
RSS
GitHub
© 2019 Liu Chao Zheng
由 Hexo 强力驱动
主题 - NexT.Gemini
总访客 人 总访问量 次