我正处于环境设置中,运行OSX MariaDB 10.0.12-MariaDB Homebrew
我搞砸了安装,所以我从我的设置中完全删除了MySQL和MariaDB,然后重新开始.
完成MariaDB的安装后,我innoDB通过生产服务器上的DB Dump 重新导入了我的数据库().它工作正常.重新启动后,第二天,我无法再访问数据库:
Table 'my.table' doesn't exist in engine
造成这种情况的原因是什么?解决方案是什么?我确实看到了我的数据库的结构,但是当我尝试访问它时,它给了我这个错误信息.
我确实尝试mysql-upgrade --force删除了rm ib_logfile1 ib_logfile0
这里的数据丢失不是问题,问题是我每次重启时都不能花30分钟重新安装每个数据库.
这是一些日志:
140730 9:24:13 [Note] Server socket created on IP: '127.0.0.1'.
140730 9:24:14 [Note] Event Scheduler: Loaded 0 events
140730 9:24:14 [Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
140730 9:24:14 [Warning] Failed to …Run Code Online (Sandbox Code Playgroud) 全新的"最小"安装CentOS 7以及MariaDB 10.我有一个额外安装的镜像卷,我想用于datadir.启动序列很好,并且当my.cnf [mysqld]被注释掉时正常完成.我已经复制了数据..
sudo cp -R -p /var/lib/mysql/* /mnt/mysql/
Run Code Online (Sandbox Code Playgroud)
权限与原始权限相同.卷位于/ etc/fstab中并且安装正常
/dev/sdb1 /mnt/mysql xfs defaults 0 0
[root@femur mysql]# ls -la
total 110632
drwxr-xr-x. 5 mysql mysql 4096 Oct 20 15:27 .
drwxr-xr-x. 3 root root 18 Oct 16 16:46 ..
-rw-rw----. 1 mysql mysql 16384 Oct 20 15:27 aria_log.00000001
-rw-rw----. 1 mysql mysql 52 Oct 20 15:27 aria_log_control
-rw-r-----. 1 mysql root 7005 Oct 20 13:49 femur.err
-rw-rw----. 1 mysql mysql 12582912 Oct 20 15:27 ibdata1
-rw-rw----. 1 …Run Code Online (Sandbox Code Playgroud) 我的主要问题是,在使用命令为我的mariadb创建了一个docker容器之后,我该docker run --name db -e MYSQL_ROOT_PASSWORD=test -d -p 3306:3306 mariadb如何访问sql db?
在某个地方,我已经看到了一个解决方案,使用了一个临时(在删除容器后删除)容器,但是找不到它了.
我正在寻找一个如下命令:sudo docker exec -it [other flags] [command] db.
我收到这个错误:
SQLSTATE [22007]:无效的日期时间格式:1366字符串值不正确:'\ xBD英寸...'第1行的列'column-name'
我的数据库,表和列的格式为utf8mb4_unicode_ci, column-name的类型为text,为NULL.
这是列名的值
[column-name] => 11之前的一些文字以及之后和之后的其他文字.
但是我等待laravel为列的值添加引号,因为值用逗号(,)分隔.它应该如下:
[column-name] =>'11之前的一些文字以及之后和之后的其他文字.'
参见下面的Schema
Schema::create('mws_orders', function (Blueprint $table) {
$table->string('custom-id');
$table->string('name');
$table->string('description')->nullable();
$table->string('comment')->nullable();
$table->integer('count')->nullable();
$table->text('column-name')->nullable();
$table->timestamps();
$table->primary('custom-id');
});
Run Code Online (Sandbox Code Playgroud)
我一直在寻找谷歌,但没有任何解决方案.
任何人都知道如何解决这个问题?
我正在使用Laravel 5.5和MariaDB 10.2.11.
我已经有几年没有使用 MySQL 了,当我创建一个新表时,它做了一些我意想不到的事情。我正在使用MariaDB v5.5.60-MariaDB
我需要创建一个既有created列又有updated列的表。
我created只需要在创建行时将列设置为 CURRENT_TIMESTAMP,然后除非我显式更改它,否则永远不会更改。
我需要updated在创建行和更改行时将列设置为 CURRENT_TIMESTAMP。
如果我执行以下操作:
CREATE TABLE user_prefs (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE,
user VARCHAR(255) NOT NULL,
provider VARCHAR(255) NOT NULL,
pref VARCHAR(128) NOT NULL,
jsondata LONGTEXT,
created timestamp NOT NULL,
modified timestamp NOT NULL,
PRIMARY KEY (id),
UNIQUE INDEX id_UNIQUE (id ASC));
Run Code Online (Sandbox Code Playgroud)
然后created将该列设置为:
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
并且该modified列设置为:
DEFAULT '0000-00-00 00:00:00'
如果我尝试这个:
CREATE TABLE user_prefs (
id …Run Code Online (Sandbox Code Playgroud) 所以我基本上是在我的 mac 上使用自制软件安装带有 mysql 的 mariadb。这些是我做的步骤:
mysql_install_db -> 失败
警告:无法使用 /usr/local/Cellar/mariadb/10.4.6_1/bin/resolveip 查找主机“Toms-MacBook-Pro.local”。这可能意味着您的 libc 库与此二进制 MariaDB 版本并非 100% 兼容。MariaDB 守护进程 mysqld 应该正常工作,但主机名解析将不起作用。这意味着在指定 MariaDB 权限时您应该使用 IP 地址而不是主机名!mysql.user 表已经存在!
mysql_upgrade之后运行给了我以下错误:
版本检查失败。调用 'mysql' 命令行客户端时出现以下错误 ERROR 1698 (28000): Access denied for user 'root'@'localhost' FATAL ERROR: Upgrade failed
我不能像这样进入mysql:
mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
但像这样:
sudo mysql -u root
Run Code Online (Sandbox Code Playgroud)
用户表返回:
MariaDB [(none)]> USE mysql; …Run Code Online (Sandbox Code Playgroud) 当我们尝试为特定数据库的用户授予所有权限时,数据库的管理员(超级用户)用户收到以下错误。
Access denied for user 'admin'@'%' to database 'the_Db'
Run Code Online (Sandbox Code Playgroud)
在 stackoverflow 中查看其他问题后,我找不到解决方案。我已经尝试更改 * -> % 没有成功,这是以下来源中建议的方法:
http://www.fidian.com/problems-only-tyler-has/using-grant-all-with-amazons-mysql-rds
我认为 RDS 上有一个底层配置,所以我不能为用户授予所有权限,但我不知道如何检测正在发生的事情。
更新
在做了一些解决方法之后,我注意到“删除版本控制行”权限是导致问题的原因。我可以添加除那个之外的所有权限。
https://mariadb.com/kb/en/grant/
因此,我可以授予其他权限的唯一“方式”是使用这样的脚本来指定每个权限。
GRANT Alter ON *.* TO 'user_some_app'@'%';
GRANT Create ON *.* TO 'user_some_app'@'%';
GRANT Create view ON *.* TO 'user_some_app'@'%';
GRANT Delete ON *.* TO 'user_some_app'@'%';
GRANT Drop ON *.* TO 'user_some_app'@'%';
GRANT Grant option ON *.* TO 'user_some_app'@'%';
GRANT Index ON *.* TO 'user_some_app'@'%';
GRANT Insert ON *.* TO 'user_some_app'@'%';
GRANT References ON *.* TO 'user_some_app'@'%'; …Run Code Online (Sandbox Code Playgroud) 我现在正在学习 SQLAlchemy,但遇到了一个令我困惑的错误。是的,这里已经有类似的问题了,但似乎没有一个得到解决。
我的目标是使用ORM模式来查询数据库。所以我创建了一个模型:
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import Session, registry
from sqlalchemy.sql import select
database_url = "mysql+pymysql://..."
mapper_registry = registry()
Base = mapper_registry.generate_base()
class User(Base):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
name = Column(String(32))
engine = create_engine(database_url, echo=True)
mapper_registry.metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)
新我想加载表中所有条目的整行:
with Session(engine) as session:
for row in session.execute(select(User)):
print(row.name)
#- Error: #
Traceback (most recent call last):
...
print(row.name)
AttributeError: Could not locate column in row for column 'name'
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我不应该能够访问 ORM 模型的字段吗?或者我误解了 ORM 的想法? …
在执行完 images rm、volumes rm 和 docker prune 之后,我在使用 docker-compose 启动 mariaDB 时遇到此错误
这是数据库组成部分(yml):
mariaDB:
image: 'mariadb:latest'
environment:
- MYSQL_ROOT_PASSWORD=root_password
Run Code Online (Sandbox Code Playgroud)
错误日志:
mariaDB_1 | 2022-05-27 20:14:42+00:00 [注意] [入口点]:MariaDB Server 1:10.8.3+maria~jammy 的入口点脚本已启动。
mariaDB_1 | 2022-05-27 20:14:42+00:00 [错误] [入口点]:
mariadbd 尝试检查配置时失败
mariaDB_1 | 命令是:mariadbd --verbose --help --log-bin-index=/tmp/tmp.JMRNT5ajM6
mariaDB_1 | 无法初始化计时器 services_mariaDB_1 已退出,代码为 1
提前致谢!
mariadb ×10
mysql ×8
docker ×2
amazon-rds ×1
centos ×1
homebrew ×1
innodb ×1
laravel ×1
laravel-5.5 ×1
linux ×1
macos ×1
orm ×1
php ×1
pymysql ×1
python ×1
sqlalchemy ×1
wamp ×1
wampserver ×1