Mysql数据库授权

21. May 2020 DataBase 0
不用用户不同权限的操作重要性毋庸置疑,记录下 show grants for ***@localhost; 查看用户的授权列表 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, REFERENCES, ALTER ON database1.* TO `***`@`localhost`; REVOKE SELECT, INSERT, UPDATE, DELETE, CREATE, REFERENCES, ALTER ON database1.* FROM `***`@`localhost`; flush privileges;

mysqldump批量导出多个数据库结构和数据

21. May 2020 DataBase 0
mysqldump -uroot -p\"************\" --add-drop-database --databases college1 college2 college3 > ~/databases.$(date +%Y%m%d).sql --add-drop-database 导出数据库的建库语句,若存在则删除后再创建 --databases 用空格分开多个要导出的数据库名称 $(date +%Y%m%d).sql 根据当前的年月日生成导出的sql文件名称 数据导入: mysql -uroot -p\"************\" source ~/databases.20200521.sql 迁移过程中遇到了编码格式的转换问题,记录一下 vim中的批量替换 %s/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g 把utf8mb4_0900_ai_ci全部替换成utf8mb4_general_ci

MySql删除重复的记录

09. May 2020 DataBase 0
DELETEFROMword_relation_booksWHERE(book_id, word_id) IN (SELECT a.book_id,a.word_id from ( SELECT book_id, word_id FROM word_relation_books GROUP BY book_id, word_id HAVING count(* )> 1 ) a)AND id NOT IN (SELECTb.idFROM( SELECT min( id ) AS id FROM word_relation_books GROUP BY book_id, word_id HAVING count(* )> 1 ) b)

Mysql更新插入编码问题

22. August 2019 DataBase 0
数据插入更新,尤其是遇到遗留系统时,编码不一致可能会报错,如Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation ‘=’ 解决方式代码如下: UPDATE college_video a, colleges b SET a.college_id = b.id WHERE a.college_name_cn COLLATE utf8mb4_unicode_ci = b.name_cn

日常开发MySql语句记录整理

06. March 2019 DataBase 0
1.更新替换数据库指定字段中的换行符(char(10))和回车符(char(13)) UPDATE foreign_schools SET country = REPLACE ( REPLACE ( country, CHAR ( 10 ), ” ), CHAR ( 13 ), ” ) 2.搜索查询中orwhere和where的使用 $schools = $foreignSchool->when($request->has(“year”), function ($query) use ($request) { return $query->where(“year”, $request->year); })->when($request->has(“name”), function ($query) use ($request) { return $query->where(function ($query) use ($request) { $query->where(“name”, “like”, “%{$request->name}%”)->orWhere(“cname”, “like”, “%{$request->name}%”); }); })->orderBy(“year”, “desc”)->paginate($request->number ...

Mysql权限控制

19. October 2018 DataBase 0
开发过程中使用mysql的root用户进行操作配置等是意见很危险的事,用户权限应分门别类,主要是授权操作,drop操作和alter操作. 查看用户: SELECT `user`,`Host` from mysql.`user` 增加用户: create user \'muu\'@\'%\' IDENTIFIED by \'password\' 授权操作: GRANT SELECT,UPDATE,DELETE,INSERT,ALTER,CREATE ONcollege.* to \'muu\'@\'%\' 查看授权操作: show GRANTS FOR muu 取消授权操作: REVOKE SELECT, INSERT, UPDATE, DELETE on college.* FROM muu

Mysql 排序orderBy if 使用方法及排序规则

22. May 2018 DataBase 0
开发中遇到的排序问题中,有字段为0或null,需要后置处理,网上部分博客感觉有点问题,多次实践,总结如下: 使用的字段id,自增,usnews_n_sort参照,rank进行排序,有0和null   排序过程中判断rank是否为0或为null,若是,则在rank上添加隐藏字段,为“1”添加在查询结果尾部,为“0”添加在查询结果首部 情景一:不使用 if 排序 SELECT id,usnews_n_sort,rank from test ORDER BY rank ASC 使用rank 升序,null 在0之前。   情景二:使用 if  后置 升序 SELECT id,usnews_n_sort,rank from test ORDER BY IF(rank=0 || ISNULL(rank),1,0), rank ASC 把为0或为null的情况后置,然后进行升序处理   情景三:使用if 后置 降序 SELECT id,usnews_n_sort,rank from test ORDER BY IF(rank=0 || ISNULL(rank),1,0), rank DESC 把为0或为null的情况后置,然后进行降序处理   情景四:使用if 前置 升序 ...

Mysql 批量更新 1093 – You can’t specify target table ‘questions’ for update in FROM clause

01. December 2017 DataBase 0
Mysql中更新和查询条件在同一个表中会出现1093 – You can’t specify target table ‘questions’ for update in FROM clause错误,错误代码如下: update questions set number=3 where id in (SELECT id from questions WHERE choose LIKE \"%C%\" and choose NOT LIKE \"%D%\") 可通过如下方法解决: UPDATE questions s set number=3 where s.id IN (SELECT t.id from (SELECT * FROM questions WHERE choose LIKE \"%C%\" and choose ...

Mysql外键篇

06. June 2017 DataBase 0
外键作用:保持数据一致性,完整性。外键只能引用外表中的列的值或使用空值。 table2表: CREATE TABLE `table2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) DEFAULT NULL, `age` varchar(45) DEFAULT NULL, `score` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`), KEY `index2` (`age`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 table1表: CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) DEFAULT NULL, `age` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`), ...