我在使用脚本备份(使用mysqldump)MySQL数据库的时候,因为密码较为复杂(含有!&等特殊字符),总是提示密码不正确,原来的备份命令是(其中somepassword是密码,被我替换掉了): MYSQL_ROOT_PASSWORD='somepassword' docker exec mysql8 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /opt/mysql-all-databases.sq…

2023-11-20 0条评论 146点热度 0人点赞 admin 阅读全文

之前备份Docker下的MySQL数据库,我都是这样写的: docker exec mysql sh -c 'exec mysqldump somedatabase -uroot -pmy-secret-pw' > /opt/somedatabase-dump.sql somedatabase 是某个数据库的名字,-p后面的是密码,如果密码包含了复杂的特殊字符密码,例如里面含有$@!等字符,就会提示密码不正确。 解决方案是把密码作为变量,并且修改写法,如下: MYSQL_PASSWORD='mysqlpwd@…

2023-09-23 0条评论 208点热度 0人点赞 admin 阅读全文

安装MySQL Community Server,选择的是rpm安装的方式,需要先到网站准备好rpm安装包:https://dev.mysql.com/downloads/mysql/ 省事一点,可以下载rpm bundle,就是全部的rpm包,或者只下载需要的rpm安装包 如果是bundle包,只一个tar文件,需要把里面的rpm包解压出来 然后使用rpm -ivh mysql*.rpm 方式安装,遇到一个报错: [root@mgr opt]# rpm -ivh mysql*.rpm warning: mysql…

2023-07-09 0条评论 255点热度 0人点赞 admin 阅读全文

如题,需要用SQL随机查询出若干行数据。 以查询t_table表10条随机记录为例, -- Oracle Select随机10个 SELECT * FROM ( SELECT * FROM t_table ORDER BY DBMS_RANDOM.RANDOM ) WHERE rownum < 10; -- MySQL select * from t_table order by rand() limit 10;  

2023-05-03 0条评论 207点热度 0人点赞 admin 阅读全文

select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。 那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。 没用索引/主键的话就是表锁,否则就是是行锁。 验证: 建表sql //id为主键 //name 为唯一索引 CREATE TABLE `user` ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `name` VARCHAR ( 255 ) DEFAULT NULL, `age` INT…

2022-12-05 0条评论 353点热度 0人点赞 admin 阅读全文

在开发过程中遇到了一个问题,使用MySQL数据库,用SQL语句在表中随机获取一条或多条数据,看似简单,但是往深层研究的话还是很有深度的,查了好多资料,接下来给大家分享一下: 1. 随机获取单条数据(简单但低性能版本) 使用rand()函数 SELECT * FROM table_name ORDER BY RAND() LIMIT 1; MySQL中的RAND()函数调用可以在0和1之间产生一个随机数。 这条SQL语句可以随机取出一条数据,而且将limit 1改为获取多条数据,例如limit 10,得到的数据也是随…

2022-10-27 0条评论 2191点热度 0人点赞 admin 阅读全文

我们都知道,MySQL中关于字符,有char和varchar两种常用的类型,可能在平时的使用过程中,大家不会去关心这两种类型的区别,只是会用就可以了,或者说看到过一些它们的区别,但是没有时间去测试,今天有时间了,我将这两种类型的具体情况实验一把,让大家直观感受下,纯属分享,大神请绕道。 ​ 先说说理论吧。 ​ char类型为固定长度的字符串,比如说char(10),它定义了指定的字符串长度最大为10个字符,如果你现在输入一个字符串为’12345678’,那么它在char类型中到底会占用多少个字符呢?答案是10个,后…

2022-09-24 0条评论 393点热度 0人点赞 admin 阅读全文

MySQL字符串截取,需要用到substr(等价于或者) SUBSTR(string, start, length) substring(string, start, length) mid(string, start, length) 或者: SUBSTR(string FROM start FOR length) substring(string FROM start FOR length) mid(string FROM start FOR length) 参数说明 参数 说明 string 必填。需要处理的…

2022-09-19 0条评论 396点热度 0人点赞 admin 阅读全文

MySQL中搜索我们一般是使用like关键词来搜索,不过我们还可能遇更加复杂的搜索条件,例如需要正则表达式(写过程序的一般都知道)去寻找的情况, 匹配字符串 匹配字符串是正则表达式最基础的应用。我们先给出一个例子:我们从一个用户表中查询出名字中包含有100数字的用户 SELECT * FROM my_user WHERE `name` REGEXP '100';   我们得到了用户ID为1的用户:小红100 该语句中不同于之前的语句,我们使用REGEXP关键字代表后面为正则表达式 这条语句看起来和LIKE…

2022-08-26 0条评论 526点热度 0人点赞 admin 阅读全文

MySQL在插入完一条数据库后,要知道插入的行的ID 使用来实现,代码如下: INSERT INTO t_table (col1, col2,...) VALUES ('val1', 'val2'...); SELECT LAST_INSERT_ID(); 以上会查询出最后一个insert出来的数据的ID,而且不用担心多用户访问问题,它是根据你的connection(session)来控制的,只会得到你这个连接状态下的最后一个insertId,如果其他人(或者客户端程序)也连着数据库操作,是相互不受影响的。

2022-08-18 0条评论 659点热度 0人点赞 admin 阅读全文