我在 Linux Debian 9(stretch)上安装了 MariaDB + Nginx。安装 MariaDB 并尝试启动它后,我收到错误消息:
[Warning] Could not increase number of max_open_files to more than 4096 (request: 4214). 所以我用谷歌搜索它,它告诉我应该更改LimiNOFILE为 10000 in /etc/systemd/system/mysql.service. 我这样做了,做了 deamon-reload 并且它什么也没做。我仍然收到相同的错误消息。我尝试重新安装 MariaDB,但这也无济于事。我还在LimitMEMLOCK=10000文件的最后添加了,这并没有改变任何东西。
完整追溯:
先感谢您
我使用以下代码将人员对象保存到数据库中:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setID(1);
person.setName("name-1");
person.setAddress("address-1");
Configuration configuration = new Configuration().configure().addAnnotatedClass(Person.class);
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
session.save(person);
transaction.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
我发现save方法已被弃用。我们应该使用什么替代方法?
我试图从xml中提取值.我在xml具有属性时遇到问题.喜欢以下存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `excel`.`insert_items` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_items`()
BEGIN
SET @xml = '<items><item>
<value columntype="0">Single Line Text_01</value>
<value columntype="1">Single Line Text_12341</value>
<value columntype="2">Single Line Text_21</value>
<value columntype="3">Single Line Text_31</value>
<value columntype="4">Single Line Text_41</value>
</item>
</items>';
SELECT @columntype, ExtractValue(@xml, 'items/item/value[items/item/value/@columntype=0]');
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud) 我有一个后插入触发器.调用存储过程.当我运行直接查询时,它运行良好.但是当我通过节点js app插入数据时.它甚至不在主表中插入数据.触发器和存储过程中没有任何错误,因为它适用于表的直接插入查询.
dbObject.create(data, function(err, response){
if (err) {
//console.log("err", err);
res.status(500).jsonp(response)
}
console.log("response", response);
dbObject.find({SnsId: SnsId}, '*' , {}, 0, 0, {}, function(err, resp){
if (err) {
//console.log("err", err);
res.status(500).jsonp(err)
}
console.log("response", resp);
res.jsonp(resp);
});
});
Run Code Online (Sandbox Code Playgroud)
触发代码 -
DELIMITER $$
CREATE TRIGGER `copytoSensorMapTrigger` AFTER INSERT ON test4.`SENSORS`
FOR EACH ROW
BEGIN
CALL copyToSensorMap(NEW.`SnsId`,NEW.`SnsState`);
END;
Run Code Online (Sandbox Code Playgroud)
存储过程代码 -
DELIMITER $$
CREATE PROCEDURE copyToSensorMap(IN snsid bigint(20),IN sns_state varchar(128))
BEGIN
DECLARE color varchar(128);
INSERT INTO test3.`SENSOR_MAP` (`SENSOR_ID`, `SENSOR_NAME`, `USER_ID`, `HOST_ID`, `SENSOR_STATE`)
SELECT `SnsId`,
`SnsName`,`SnsOwner`,`HostId`,`SnsState` …Run Code Online (Sandbox Code Playgroud) 我试图使用laravel ModelFactory创建一个使用一些虚拟数据填充表格的播种表.我一直收到这个错误,而且我没有修复它的想法.
'种族'模式
<?php
namespace App\Game;
use Illuminate\Database\Eloquent\Model;
class Race extends Model
{
//
public $timestamps = false;
protected $fillable = ['name','description','icon'];
}
Run Code Online (Sandbox Code Playgroud)
文件2模型工厂文件
$factory->define(App\Game\Race::class, function (Faker\Generator $faker) {
return [
'name' => $faker->name,
'description' => $faker->text,
'icon' => $faker->url,
];
});
Run Code Online (Sandbox Code Playgroud)
文件3播种机文件
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class RacesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
factory(App\Game\Race::class, 10)->create()->each(function($u) {
$u->posts()->save(factory(App\Game\Race::class)->make());
});
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误调用未定义的方法Illuminate\Database\Query\Builder :: posts()
当我打电话给'php …
我有这个脚本,我习惯于为动态结果做一个简单的投影
SELECT
M.nom_utilisateur,
SUM(M.montant_bulletin ) as Montant_Total_BS,
SUM(M.montant_payer ) as Montant_Total_payer,
COUNT(M.ref_bs ) as nbr_bs_total,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Remboursé")) as nbr_bs_total_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "Non remboursé")) as nbr_bs_non_payer,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND (M.nom_assurence = "Star" AND M.etat_bs = "En cours")) as nbr_bs_en_cours,
(SELECT COUNT(*) FROM mutuelle_bi.`Mutuelle` WHERE nom_utilisateur = M.nom_utilisateur AND …Run Code Online (Sandbox Code Playgroud) 我是OWB的新手并执行Match-Merge操作.
输入数据
源(数据库):22,33,000条记录
目标:1000条记录
实际产出
20,00,000条记录
预期输出
匹配 - 合并表:<= 1000条记录
我无法弄清楚为什么我在输出匹配合并表中得到如此巨大的数字是出乎意料的.
请帮助我指导将实际输出减少到大约所需的所有步骤.1000条记录.
在数据库类中创建查询函数(必须使用单例模式创建)是一个好习惯吗?或者更好地创建另一个带有数据库接口的类,或类似的东西,并在构造函数中获取数据库实例?(对不起我的英语不好 :)
<?php
class Database
{
private static $_pdo = null;
private static function getDatabase() {
if (self::$_pdo === null) {
self::$_pdo = new PDO("mysql:host=localhost;dbname=contact_manager", 'root', '');
}
return self::$_pdo;
}
public static function query($query, $parameters) {
Database::_toArray($parameters);
$query = self::getDatabase()->prepare($query);
$query->execute($parameters);
$result = $query->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
private static function _toArray(&$parameters) {
if (!is_array($parameters)) {
$parameters = array($parameters);
}
}
private function __construct() { }
private function __clone() { }
private function __wakeup() { }
}
?>
Run Code Online (Sandbox Code Playgroud) 我有查询,显示不同的结果,当我使用和或&
criteria1 = Q(id__gte=802, id__lte=1000)
criteria2 = Q(country_id__contains='UK')
Run Code Online (Sandbox Code Playgroud)
我一直在使用:
q = Mymodel.objects.filter(criteria1 & criteria2)
Run Code Online (Sandbox Code Playgroud)
但在这个特殊情况下,当我使用& 它总是输出一行. (我也查了打印q.query(),查询出来就好了)
但是,当我使用而不是&时.查询提供正确的输出
q = Mymodel.objects.filter(criteria1 and criteria2)
Run Code Online (Sandbox Code Playgroud)
引擎盖下究竟发生了什么?
我正在尝试在 macOS BigSur(在 M1 芯片 mac 上运行)上安装 mysqlclient 作为使用 MySQL DB 实现 django 项目的一部分。但是,我收到以下错误:
Collecting mysqlclient
Using cached mysqlclient-2.0.3.tar.gz (88 kB)
Using legacy 'setup.py install' for mysqlclient, since package 'wheel' is not installed.
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient ... error
ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/setup.py'"'"'; __file__='"'"'/private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-record-jl3d35rj/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/mysqlclient
cwd: /private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/
Complete output …Run Code Online (Sandbox Code Playgroud)