Incorrect table definition; there can be ony one auto column and it must be

马化云 发表了文章 • 0 个评论 • 234 次浏览 • 2022-10-26 10:00 • 来自相关话题

 Incorrect table definition; there can be only one auto column and it must be defined as a key 
在DBeaver中建表,建了一列主键,自增的,保存。报错。
 
错误原因:
 Incorrect table definition; there can be only one auto column and it must be defined as a key
 
需要设置改为为主键。
设置地方:










 
在约束关系那里,选定一个主键即可!
 
  查看全部
 Incorrect table definition; there can be only one auto column and it must be defined as a key
 
在DBeaver中建表,建了一列主键,自增的,保存。报错。
 
错误原因:
 Incorrect table definition; there can be only one auto column and it must be defined as a key
 
需要设置改为为主键。
设置地方:

stickPicture.png


stickPicture2.png

 
在约束关系那里,选定一个主键即可!
 
 

Django mysql SSL 证书配置

马化云 发表了文章 • 0 个评论 • 310 次浏览 • 2022-10-13 15:35 • 来自相关话题

Django的mysql配置在settings.py 里面
 具体配置如下:
 
ca_path = '/etc/ssl/certs/ca-certificates.crt' # 证书地址

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wordpress',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1`',
'PORT': 3306,
'OPTIONS': {'ssl':{'KEY': ca_path}}
}
} 查看全部
Django的mysql配置在settings.py 里面
 具体配置如下:
 
ca_path = '/etc/ssl/certs/ca-certificates.crt' # 证书地址

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wordpress',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1`',
'PORT': 3306,
'OPTIONS': {'ssl':{'KEY': ca_path}}
}
}

SQLAlchemy mysql ssl证书 连接

马化云 发表了文章 • 0 个评论 • 321 次浏览 • 2022-10-09 20:50 • 来自相关话题

如果你的mysql 服务器需要ssl证书才能连接,那么平时的create_engine连接语句是会报错的。
 
需要加上参数:
connect_args,加上ssl路径。
 
from sqlalchemy import create_engine
ca_path = '/etc/ssl/certs/ca-certificates.crt' # linux 证书路径
ssl_args = {'ssl_ca': ca_path}

engine = create_engine('mysql+pymysql://root:password@127.0.01:3306/wordpressdb?charset=utf8',
echo = True,
connect_args=ssl_args
) 查看全部
如果你的mysql 服务器需要ssl证书才能连接,那么平时的create_engine连接语句是会报错的。
 
需要加上参数:
connect_args,加上ssl路径。
 
from sqlalchemy import create_engine
ca_path = '/etc/ssl/certs/ca-certificates.crt' # linux 证书路径
ssl_args = {'ssl_ca': ca_path}

engine = create_engine('mysql+pymysql://root:password@127.0.01:3306/wordpressdb?charset=utf8',
echo = True,
connect_args=ssl_args
)

influxdb什么都没有做,数据目录占用很大磁盘空间

李魔佛 发表了文章 • 0 个评论 • 428 次浏览 • 2022-10-08 10:11 • 来自相关话题

之前只是安装了influxdb的程序,并设置成了服务。
后面就没有怎么导入数据。
 
结果最近硬盘一直警报,说空间不够了。
 
经过一番排查,发现是influxdb的数据目录很大,有接近100GB。
默认目录在这里:
/var/lib/influxdb/engine/data
停止服务:
 sudo systemctl restart influxdb
 不过这样下次系统重启,influxdb还是会自动重启。还需要把服务给禁用掉。
update-rc.d influxdb remove
 如果没有报错,就成功了。
 

 
  查看全部
之前只是安装了influxdb的程序,并设置成了服务。
后面就没有怎么导入数据。
 
结果最近硬盘一直警报,说空间不够了。
 
经过一番排查,发现是influxdb的数据目录很大,有接近100GB。
默认目录在这里:
/var/lib/influxdb/engine/data

停止服务:
 
sudo systemctl restart influxdb

 不过这样下次系统重启,influxdb还是会自动重启。还需要把服务给禁用掉。
update-rc.d influxdb remove

 如果没有报错,就成功了。
 

 
 

systemctl start influxdb 服务启动出错

李魔佛 发表了文章 • 0 个评论 • 753 次浏览 • 2022-07-21 19:12 • 来自相关话题

又是一次典型的csdn踩坑记。。。。。
csdn的原文内容:
https://blog.csdn.net/xiangjai/article/details/123718413







安装上面的配置走,ubuntu的influxdb一直无法启动。
 
只好一个一个选项的排除:
最后发现那个bind-address的问题:
 把端口哪行注释了,先用着。。。bolt-path = "/var/lib/influxdb/influxd.bolt"
engine-path = "/var/lib/influxdb/engine"
enable = true
#bind-address = ":8086" 查看全部
又是一次典型的csdn踩坑记。。。。。
csdn的原文内容:
https://blog.csdn.net/xiangjai/article/details/123718413


20220721002.png


安装上面的配置走,ubuntu的influxdb一直无法启动。
 
只好一个一个选项的排除:
最后发现那个bind-address的问题:
 把端口哪行注释了,先用着。。。
bolt-path = "/var/lib/influxdb/influxd.bolt"
engine-path = "/var/lib/influxdb/engine"
enable = true
#bind-address = ":8086"

influxdb 2.x和1.x 把api差也太多了吧。 基本不往上兼容

李魔佛 发表了文章 • 0 个评论 • 706 次浏览 • 2022-07-21 12:43 • 来自相关话题

最讨厌这一类api的。
 
网上信息凌乱。
 
导致很多人写技术内容的时候不会提前说明当前的influxdb的版本。
 
只能不断地试错。
 $ influx -precision rfc3339
Error: unknown shorthand flag: 'p' in -precision
See 'influx -h' for help没有一个命令对得上的。。
 
后续自己写个influxdb 2.x的教程吧,当做自己的学习笔记也好。
 
### 更新
刚在写,结果就发现 v2.3 以上的接口又有分叉。。。 真的是日狗了的






  查看全部
最讨厌这一类api的。
 
网上信息凌乱。
 
导致很多人写技术内容的时候不会提前说明当前的influxdb的版本。
 
只能不断地试错。
 
$ influx -precision rfc3339
Error: unknown shorthand flag: 'p' in -precision
See 'influx -h' for help
没有一个命令对得上的。。
 
后续自己写个influxdb 2.x的教程吧,当做自己的学习笔记也好。
 
### 更新
刚在写,结果就发现 v2.3 以上的接口又有分叉。。。 真的是日狗了的

20220721125727934.png


 

腾讯云轻量服务器使用mysqldump导出数据 导致进程被杀

李魔佛 发表了文章 • 0 个评论 • 599 次浏览 • 2022-05-18 19:43 • 来自相关话题

只能说任何数据库都不能随意放在轻量服务器,io读写太差了。
 
稍微密集一点,直接被杀掉。
 
在方面放mysql服务,简直就是煞笔行为。
只能说任何数据库都不能随意放在轻量服务器,io读写太差了。
 
稍微密集一点,直接被杀掉。
 
在方面放mysql服务,简直就是煞笔行为。

centos yum安装mysql client 客户端

马化云 发表了文章 • 0 个评论 • 886 次浏览 • 2022-05-17 11:51 • 来自相关话题

centos7 下使用yum下找不到mysql客户端的rpm包了,
 
这时需要从官网下载

1.安装rpm源

rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

 
2.安装客户端

#可以通过yum搜索yum search mysql

#若是64位的话直接安装yum install mysql-community-client.x86_64
 结果报错
报以下密钥错误:The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

则先执行以下命令再安装:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
wget -q -O - https://repo.mysql.com/RPM-GPG-KEY-mysql-2022|yum install然后重新安装 yum install mysql-community-client.x86_64

 
操作:
连到数据库:mysql -h 数据库地址 -u数据库用户名 -p数据库密码 -D 数据库名称

mysql -h 88.88.19.252 -utravelplat -pHdkj1234 -D etravel

数据库导出(表结构):mysqldump -h 数据库地址 -u数据库用户名 -p数据库密码 -d 数据库名称 > 文件名.sql
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 -d etravel > db20190713.sql

数据库导出(表结构 + 表数据):mysqldump -h 数据库地址 -u数据库用户名 -p数据库密码 数据库名称 > 文件名.sql
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 etravel > db20190713.sql

数据库表导出(表结构 + 表数据):
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 etravel doc > doc.sql

导入到数据库:source 文件名.sql
source db20190713.sql
 
  查看全部
centos7 下使用yum下找不到mysql客户端的rpm包了,
 
这时需要从官网下载

1.安装rpm源

rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

 
2.安装客户端

#可以通过yum搜索
yum search mysql


#若是64位的话直接安装
yum install mysql-community-client.x86_64

 结果报错
报以下密钥错误:
The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


则先执行以下命令再安装:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
wget -q -O - https://repo.mysql.com/RPM-GPG-KEY-mysql-2022|yum install
然后重新安装 yum install mysql-community-client.x86_64

 
操作:
连到数据库:mysql -h 数据库地址 -u数据库用户名 -p数据库密码 -D 数据库名称

mysql -h 88.88.19.252 -utravelplat -pHdkj1234 -D etravel

数据库导出(表结构):mysqldump -h 数据库地址 -u数据库用户名 -p数据库密码 -d 数据库名称 > 文件名.sql
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 -d etravel > db20190713.sql

数据库导出(表结构 + 表数据):mysqldump -h 数据库地址 -u数据库用户名 -p数据库密码 数据库名称 > 文件名.sql
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 etravel > db20190713.sql

数据库表导出(表结构 + 表数据):
mysqldump -h 88.88.19.252 -utravelplat -pHdkj1234 etravel doc > doc.sql

导入到数据库:source 文件名.sql
source db20190713.sql
 
 

cronsun 数据备份与恢复

李魔佛 发表了文章 • 0 个评论 • 609 次浏览 • 2022-04-09 18:10 • 来自相关话题

这对于动辄几十几百个任务的朋友来说,备份与恢复很重要。
 
cronsun提供的csctl工具可以备份和恢复cronsun的任务数据。
 
备份数据:
 
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径,会自动加上 .zip 后缀,这里不需要写后缀
csctl backup --conf={/path/to/base.json} --dir=./ --file=cronsun_data
恢复数据# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径
csctl restore --conf={/path/to/base.json} --file=./cronsun_data.zip
把数据导入之后,还需要在新的机器上,web登录,把运行的节点逐个改为新节点。 这个有点不智能,不过,相比每一个都要手动更新全部内容,也很好很多,节省很多时间了。 查看全部
这对于动辄几十几百个任务的朋友来说,备份与恢复很重要。
 
cronsun提供的csctl工具可以备份和恢复cronsun的任务数据。
 
备份数据:
 
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径,会自动加上 .zip 后缀,这里不需要写后缀
csctl backup --conf={/path/to/base.json} --dir=./ --file=cronsun_data

恢复数据
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径
csctl restore --conf={/path/to/base.json} --file=./cronsun_data.zip

把数据导入之后,还需要在新的机器上,web登录,把运行的节点逐个改为新节点。 这个有点不智能,不过,相比每一个都要手动更新全部内容,也很好很多,节省很多时间了。

etcd连接带用户名与密码

李魔佛 发表了文章 • 0 个评论 • 1835 次浏览 • 2022-04-09 00:57 • 来自相关话题

如果你的etcd设置了密码,使用以下方式进行操作:
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT put foo "Hello World" --user="root" --password="password"

这样就把foo的值设为 "Hello World"
 
同理,如果要读取foo的值,只需要
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT get foo --user="root" --password="password"
就可以把你上一个设置的值读取出来。
  查看全部
如果你的etcd设置了密码,使用以下方式进行操作:
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT put foo "Hello World" --user="root" --password="password"

这样就把foo的值设为 "Hello World"
 
同理,如果要读取foo的值,只需要
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT get foo --user="root" --password="password"

就可以把你上一个设置的值读取出来。
 

折腾了半天,结果发现windows上无法使用redis 布隆过滤器插件

李魔佛 发表了文章 • 0 个评论 • 1794 次浏览 • 2021-05-16 06:09 • 来自相关话题

运行实例代码:

# Using Bloom Filter from redisbloom.client import Client rb = Client() rb.bfCreate('bloom', 0.01, 1000) rb.bfAdd('bloom', 'foo') # returns 1 rb.bfAdd('bloom', 'foo') # returns 0 rb.bfExists('bloom', 'foo') # returns 1 rb.bfExists('bloom', 'noexist') # returns 0
 
 
报错:
redis.exceptions.ResponseError: unknown command BF.RESERVE, with args beginning with: bloom, 0.01, 1000 
 连docker上得镜像也不支持。
更别说windows版本上的redis按照插件了。
 
只好用linux的docker了。

docker run -p 6379:6379 --name redis-redisbloom redislabs/rebloom:latest

  查看全部
运行实例代码:

# Using Bloom Filter from redisbloom.client import Client rb = Client() rb.bfCreate('bloom', 0.01, 1000) rb.bfAdd('bloom', 'foo') # returns 1 rb.bfAdd('bloom', 'foo') # returns 0 rb.bfExists('bloom', 'foo') # returns 1 rb.bfExists('bloom', 'noexist') # returns 0
 
 
报错:
redis.exceptions.ResponseError: unknown command BF.RESERVE, with args beginning with: bloom, 0.01, 1000 
 连docker上得镜像也不支持。
更别说windows版本上的redis按照插件了。
 
只好用linux的docker了。

docker run -p 6379:6379 --name redis-redisbloom redislabs/rebloom:latest

 

redis启动报错

李魔佛 发表了文章 • 0 个评论 • 1618 次浏览 • 2021-02-21 14:50 • 来自相关话题

使用systemctl start redis-server启动redis报错:
 
Failed to start Advanced key-value store
 
csdn查出来的全是垃圾。
 
后面再stackoverflow看了下,尝试其中一个方案:
使用命令启动
/usr/bin/redis-server /etc/redis/redis-conf
 
然后一起就又正常了, 如果还是报错,把bind的ip地址后面那截改为127.0.0.1,后面那个ipv6格式的不要 查看全部
使用systemctl start redis-server启动redis报错:
 
Failed to start Advanced key-value store
 
csdn查出来的全是垃圾。
 
后面再stackoverflow看了下,尝试其中一个方案:
使用命令启动
/usr/bin/redis-server /etc/redis/redis-conf
 
然后一起就又正常了, 如果还是报错,把bind的ip地址后面那截改为127.0.0.1,后面那个ipv6格式的不要

mysql存储过程学习

李魔佛 发表了文章 • 0 个评论 • 1624 次浏览 • 2020-10-18 16:38 • 来自相关话题

数据库存储过程,以前没怎么用过了,记录下具体的用法:
环境 : MySQL8 + Navicat
 
1 .创建一个存储过程:
在navicat的查询窗口执行:
delimiter $$
create procedure hello_procedure ()
begin
select 'hello world';
END $$

call hello_procedure();
 
  查看全部
数据库存储过程,以前没怎么用过了,记录下具体的用法:
环境 : MySQL8 + Navicat
 
1 .创建一个存储过程:
在navicat的查询窗口执行:
delimiter $$
create procedure hello_procedure ()
begin
select 'hello world';
END $$

call hello_procedure();

 
 

DBUtils 包名更新为dbutils,居然大部分包名都由驼峰命名改为下划线了

李魔佛 发表了文章 • 0 个评论 • 2194 次浏览 • 2020-10-04 17:01 • 来自相关话题

原来的调用是这样子的:
 from DBUtils.PooledDB import PooledDB, SharedDBConnection
POOL = PooledDB
现在是这样的了:
 from dbutils.persistent_db import PersistentDB至于使用方法还是和原来的差不多。

原创文章,转载请注明出处
http://30daydo.com/article/611
  查看全部
原来的调用是这样子的:
 
from DBUtils.PooledDB import PooledDB, SharedDBConnection
POOL = PooledDB

现在是这样的了:
 
from dbutils.persistent_db  import PersistentDB
至于使用方法还是和原来的差不多。

原创文章,转载请注明出处
http://30daydo.com/article/611
 

在Docker中配置Kibana连接ElasticSearch的一些小坑

李魔佛 发表了文章 • 0 个评论 • 8007 次浏览 • 2020-08-09 01:49 • 来自相关话题

之前编译部署的时候只需要在config/kibana.yaml 中修改host ,把默认的 http://elasticsearch:9200 改为 http://127.0.0.1:9200 , 如果你的ElasticSearch带密码访问,只需在下面加多2行
elasticseacrh.user='elastic'
elasticsearch.password='xxxxxx'  # 你之前配置ES时设置的密码
 
BUT, 上面的配置在docker环境下无法正常启动使用kibana, 通过docker logs 容器ID, 查看的日志信息:
 
log [17:39:09.057] [warning][data][elasticsearch] No living connections
log [17:39:09.058] [warning][licensing][plugins] License information could not be obtained from Elasticsearch due to Error: No Living connections error
log [17:39:09.635] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:09.636] [warning][admin][elasticsearch] No living connections
log [17:39:12.137] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:12.138] [warning][admin][elasticsearch] No living connections
log [17:39:14.640] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:14.640] [warning][admin][elasticsearch] No living connections
log [17:39:17.143] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:17.143] [warning][admin][elasticsearch] No living connections
log [17:39:19.645] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/使用curl访问127.0.0.1:920也是正常的,后来想到docker貌似没有配置桥接网络,两个docker可能无法互通,故把kibana.yaml里面的host改为主机的真实IP(内网172网段ip),然后问题就得到解决了。 查看全部
之前编译部署的时候只需要在config/kibana.yaml 中修改host ,把默认的 http://elasticsearch:9200 改为 http://127.0.0.1:9200 , 如果你的ElasticSearch带密码访问,只需在下面加多2行
elasticseacrh.user='elastic'
elasticsearch.password='xxxxxx'  # 你之前配置ES时设置的密码
 
BUT, 上面的配置在docker环境下无法正常启动使用kibana, 通过docker logs 容器ID, 查看的日志信息:
 
  log   [17:39:09.057] [warning][data][elasticsearch] No living connections
log [17:39:09.058] [warning][licensing][plugins] License information could not be obtained from Elasticsearch due to Error: No Living connections error
log [17:39:09.635] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:09.636] [warning][admin][elasticsearch] No living connections
log [17:39:12.137] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:12.138] [warning][admin][elasticsearch] No living connections
log [17:39:14.640] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:14.640] [warning][admin][elasticsearch] No living connections
log [17:39:17.143] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
log [17:39:17.143] [warning][admin][elasticsearch] No living connections
log [17:39:19.645] [warning][admin][elasticsearch] Unable to revive connection: http://127.0.0.1:9200/
使用curl访问127.0.0.1:920也是正常的,后来想到docker貌似没有配置桥接网络,两个docker可能无法互通,故把kibana.yaml里面的host改为主机的真实IP(内网172网段ip),然后问题就得到解决了。