背景:我下载了我的WordPress站点数据库的*.sql备份,并将旧数据库表前缀的所有实例替换为新的(例如,从默认wp_值为类似asdfghjkl_).
我刚刚了解到WordPress在数据库中使用了序列化的PHP字符串,而我所做的将与序列化字符串长度的完整性混淆.
问题是,我在学习之前删除了备份文件(因为我的网站仍然正常运行),并且安装了许多插件.所以,我无法回复,因此我想知道两件事:
如果可能的话,我该如何解决这个问题呢?
这会导致什么样的问题?
(这篇文章指出,例如,一个WordPress博客可能会丢失它的设置和小部件.但这似乎并没有发生在我身上,因为我的博客的所有设置仍然完好无损.但我不知道什么可以在内部被打破,或者它将来会出现什么问题.因此这个问题.)
我正在考虑实现一个集群服务器.在过去的几年里,我目前使用MySQL作为我的应用程序,但在过去的一年里,我已经阅读了很多关于MySQL将会发生什么以及MariaDB的优势和改进的不确定性.
如果它是单个服务器,基于我读过的所有东西,我现在就切换到MariaDB,所以我不需要在以后再做,但因为它是一个集群,我不知道是否应该切换到MariaDB Galera吧现在或等待一段时间才更成熟.
有没有人有实施这些解决方案以及这些实现的"优点"和"缺点"的经验?
我担心的是,通过改进,MariaDB将在一年或两年后不会完全替代,因为它改进并增加了新功能,所以现在是改用MariaDB的更好时机.
我创建了一个小的docker-compose.yml,曾经像魅力一样工作,以部署小型WordPress实例.它看起来像这样:
wordpress:
image: wordpress:latest
links:
- mysql
ports:
- "1234:80"
environment:
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_PASSWORD: "password"
WORDPRESS_DB_HOST: mariadb
MYSQL_PORT_3306_TCP: 3306
volumes:
- /srv/wordpress/:/var/www/html/
mysql:
image: mariadb:latest
mem_limit: 256m
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: "password"
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: "password"
volumes:
- /srv/mariadb:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
但是当我现在开始它时(可能是因为Docker更新到Docker版本1.9.1,构建a34a1d5),它失败了
wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10
wordpress_1 |
wordpress_1 | MySQL Connection Error: (2002) Connection refused
Run Code Online (Sandbox Code Playgroud)
当我有猫/etc/hosts的wordpress_1条目有MySQL:
172.17.0.10 mysql 12a564fdbc56 mariadb
Run Code Online (Sandbox Code Playgroud)
我能够ping …
这里有一个简单的问题.我有一个拥有大约10亿条记录的数据库,一台拥有200GB内存的服务器来处理它.
你对最佳表现有什么建议?Mysql 5,Mysql 6还是MariaDB?
每次我尝试将中等大小的JSON对象同步到我的数据库时,我都遇到了这个问题,因此我们可以对它进行一些报告.通过研究可能导致它的原因,我在这个问题上遇到了这些联系.
http://blog.corrlabs.com/2013/04/mysql-prepared-statement-needs-to-be-re.html http://bugs.mysql.com/bug.php?id=42041
两者似乎都指向了table_definition_cache的方向.但是,这就是说问题是由于服务器上同时发生了mysqldump.我可以向你保证,事实并非如此.此外,我将查询精简到一次只插入一个对象.
public function fire($job, $data)
{
foreach (unserialize($data['message']) as $org)
{
// Ignore ID 33421 this will time out.
// It contains all users in the system.
if($org->id != 33421) {
$organization = new Organization();
$organization->orgsync_id = $org->id;
$organization->short_name = $org->short_name;
$organization->long_name = $org->long_name;
$organization->category = $org->category->name;
$organization->save();
$org_groups = $this->getGroupsInOrganization($org->id);
if (!is_int($org_groups))
{
foreach ($org_groups as $group)
{
foreach($group->account_ids as $account_id)
{
$student = Student::where('orgsync_id', '=', $account_id)->first();
if (is_object($student))
{
$student->organizations()->attach($organization->id, array('is_officer' => ($group->name == 'Officers'))); …Run Code Online (Sandbox Code Playgroud) 我正在使用 DBeaver 来处理数据库。
|/MariaDB-mysql
|-- /information_schema
|-- /mysql
|-- /performance_schema
|-- /autoparanaiba
Run Code Online (Sandbox Code Playgroud)
我想.sql在其中运行一些文件,autoparanaiba但我没有找到IMPORT.
我有一个MariaDB Galera集群(3个节点),我设置uid为自动增加并成为表的主键
`uid | int(11) | NO | PRI | NULL | auto_increment`.
MariaDB [hello_cluster]> select uid from table order by uid limit 10;
+-----+
| uid |
+-----+
| 3 |
| 6 |
| 9 |
| 12 |
| 15 |
| 18 |
| 21 |
| 24 |
| 27 |
| 30 |
+-----+
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令,但它不起作用
alter table uid AUTO_INCREMENT=1
Run Code Online (Sandbox Code Playgroud) 我从这一行得到了错误
SELECT table.field
FROM table
WHERE table.month = 'october'
AND DATEDIFF(day, table.start_date, table.end_date) < 30
Run Code Online (Sandbox Code Playgroud)
我的列中的日期格式为md-yy
我需要将其转换为其他格式吗?如果是这样的话?
使用MariaDB
我刚刚使用apt-get dist-upgrade更新了MariaDB.现在它不再开始使用服务mysql启动了.
但是,我可以以root身份运行它或者执行:sudo -u mysql mysqld_safe然后MariaDB启动正常.文件夹/ home/mysql归mysql用户和组所有.
我发现在这个函数中抛出了错误:https: //github.com/MariaDB/server/blob/7ff44b1a832b005264994cbdfc52f93f69b92cdc/sql/mysqld.cc#L9865
我无法弄清楚接下来该做什么.有什么指针吗?
互联网上有很多关于如何启用超级权限的建议,以防有人遇到以下错误:
“错误 1419 (HY000):您没有超级权限并且启用了二进制日志记录”
但是当二进制日志选项打开时,我无法找到 MySQL 禁用这些特权的原因。
如果我使用例如修改数据库或其他东西的触发器,复制是否存在一些问题?是否安全,如果不安全,如果我将SUPER特权退回,我可以在什么情况下遇到什么样的问题?我认为这个限制背后应该有一些理由,但不明白是哪一个。
有人对此有答案吗?
谢谢你。