MariaDB数据库的外键约束实例详解

来源:脚本之家  责任编辑:小易  

在/usr/local/mysql/bin/下: ./mysqladmin -u root password ‘new_password’ 一般安装时用此方法设置。 如果 MYSQL登录错误:mysqladmin: connect to server at 'localhost' failed 无法修改密码 用 service mysqld stop mysqld_safe --skip-gr

外键

外键的用途是确保数据的完整性。它通常包括以下几种:

导出数据库 该mysqldump控制台实用程序用于数据库导出到SQL文本文件。这些文件可以轻松地传输和移动。您将需要数据库名称本身以及具有允许至少完全只读访问数据库的权限的帐户的用户名和密码。 使用以下命令导出数据库。mysqldump -u username -

1 实体完整性,确保每个实体是唯一的(通过主键来实施)

定义连接字符串:string connStr="连接字符串"; //在“服务器资源管理器”中找到你的数据库,反键,属性,找到连接字符串,复制出来 定义sqlconnection对象,首先引用system.data.sqlclient命名空间; sqlconnection sqlConn=new sqlconnection(co

2 域完整性,确保属性值只从一套特定可选的集合里选择

很多人使用 Maria DB + WordPress 搭建自己的个人博客,但是不知道如何修改 Maria DB 数据库的密码。一、 打开 MariaDB 数据库 。单机 change MariaDB password 二、直接点击确定 【MariaDB 初始默认密码为空】三、修改您的ROOT密码。

3 关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值

貌似没有这个功能,但是可以在日志中查看哪个账号密码错误的次数,然后手动锁定

1.什么是外键约束

孩子的性格养成受很多方面的影响,一方面是先天父母遗传的影响,这一部分是从出生就注定的,不可能改变。另一方面还会受到家庭环境、学校环境、社会环境等的后天因素的影响。所以,我们要想培养孩子良好的性格特点,就要从后天着手,营造和谐的家庭氛围,选择环境好点的学校,尽量多接触社会上好的因素。

与主键约束不同,创建外键约束不会自动创建对应的索引。 但是由于以下原因,对外键手动创建索引通常是有用的: 当在查询中组合相关表中的数据时,经常在联接条件中使用外键列,方法是将一个表的外键约束中的一列或多列与另一个表中的主键列或唯一键列匹配。 索引使 数据库引擎 可以在外键表中快速查找相关数据。 但是,创建此索引并不是必需的。 即使没有对两个相关表定义主键或外键约束,也可以对来自这两个表中的数据进行组合,但两个表间的外键关系说明已用其键作为条件对其进行了优化,以便组合到查询中。 对主键约束的更改可由相关表中的外键约束检查。

BOVET是在清朝年间进入的中国,主攻市场也是中国,当时在清朝尤其是南方地区非常之有名(因为当时BOVET总部就设在广州)。但是时光荏苒,现在的BOVET是一个小众的独立制表品牌,价格很高昂,单从价格来看,均价可以达到6位数,并且BOVET的一大特色是可以拆卸表带使其变成怀表,放眼全球(除中国),总体知名度不是很高。独立制表,工艺没得说,一等一的好二百年来对卓越的追求1822年,播威兄弟成立了家族品牌,其所制造的腕表一经推出便成为了制表装饰艺术领域毋庸置疑的行业参照。播威腕表更在专业制表和艺术博物馆中随处可见,彰显品牌设计的不朽地位。今天,播威工艺师们希望通过技艺传承和不断突破卓越制表工艺极限

外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强。

养育一个孩子有多难,只有爸爸妈妈最清楚,因为爸爸妈妈是当事者,而别人是旁观者,旁观者当然觉得照顾孩子很容易。婆婆也是如此,当婆婆什么忙也帮不上的时候,说话就没有那么有力度。生不生二胎是你们小两口的事情,其他人无需干涉。所以,遇到这种事情,莫生气,生气伤身体,就拿婆婆的话当笑话听了。遇到这样的婆婆是你的悲哀,但人生就是这样,怎么可能事事顺心、事事如意呢?孩子是你的,婆婆不给你哄孩子,也不要太责怪婆婆,毕竟哄孙子孙女不是老人们必须做的事情。既为人母,就要学会坚强,靠谁也不如靠自己,自强自立,才是硬道理。

关于数据表的完整性和关连性,可以举个例子

反中医,在公共发言场合明确发言不做公益捐助是维护公司智商,商人是伟大的,等等舆论型三观如此,在霸王餐时即兴演讲,坦言:今天的活动在七八年前甚至十年前是铁定做不了的,哪个人办一个如此规模的活动敢发避孕套的?所以,用早些年建立的三观来看,这个胖子可以拉去浸猪笼一千次。我是罗辑思维的用户之一。对于反中医的看法,我开始不解,也觉得这三观有问题,罗胖特地用四五十分钟的节目来树立反中医大旗后又口口声声说这是洗粉之作,我对中医的观念开始被动摇,但是不能迷信罗胖不是?于是我开始了解为何反中医,中医又如何应战,在双方论战里,大概看出了些眉目,有点意识形态的feel。最终得出,哪儿分什么中西,分明是古典医学和现代

有二张表,一张是用户表,一张是订单表:

1.如果我删除了用户表里的用户,那么订单表里面跟这个用户有关的数据,就成了无头数据了,不完整了。

2.如果我在订单表里面,随便插入了一条数据,这个订单在用户表里面,没有与之对应的用户。这样数据也不完整了。

如果有外键的话,就方便多了,可以不让用户删除数据,或者删除用户的话,通过外键同样删除订单表里面的数据,这样也能让数据完整。

通过外键约束,每次插入或更新数据表时,都会检查数据的完整性。

2.创建外键约束

2.1 方法一:通过create table创建外键

语法:

create table 数据表名称( ..., [CONSTRAINT [约束名称]] FOREIGN KEY [外键字段] REFERENCES [外键表名](外键字段,外键字段2…..) [ON DELETE CASCADE ] [ON UPDATE CASCADE ] )

参数的解释:

RESTRICT: 拒绝对父表的删除或更新操作。

CASCADE: 从父表删除或更新且自动删除或更新子表中匹配的行。ON DELETE CASCADE和ON UPDATE CASCADE都可用

注意:on update cascade是级联更新的意思,on delete cascade是级联删除的意思,意思就是说当你更新或删除主键表,那外键表也会跟随一起更新或删除。

精简化后的语法:

foreign key 当前表的字段 references 外部表名 (关联的字段) type=innodb

2.1.1 插入测试数据

例子:我们创建一个数据库,包含用户信息表和订单表

MariaDB [book]> create database market; # 创建market数据库 Query OK, 1 row affected (0.00 sec) MariaDB [book]> use market; # 使用market数据库 Database changed MariaDB [market]> create table userprofile(id int(11) not null auto_increment, name varchar(50) not null default '', sex int(1) not null default '0', primary key(id))ENGINE=innodb; # 创建userprofile数据表,指定使用innodb引擎 Query OK, 0 rows affected (0.07 sec) MariaDB [market]> create table user_order(o_id int(11) auto_increment, u_id int(11) default '0', username varchar(50), money int(11), primary key(o_id), index(u_id), foreign key order_f_key(u_id) references userprofile(id) on delete cascade on update cascade); # 创建user_order数据表,同时为user_order表的u_id字段做外键约束,绑定userprofile表的id字段 Query OK, 0 rows affected (0.04 sec) MariaDB [market]> insert into userprofile(name,sex)values('HA',1),('LB',2),('HPC',1); # 向userprofile数据表插入三条记录 Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 MariaDB [market]> select * from userprofile; # 查询userprofile数据表的所有记录 +----+------+-----+ | id | name | sex | +----+------+-----+ | 1 | HA | 1 | | 2 | LB | 2 | | 3 | HPC | 1 | +----+------+-----+ 3 rows in set (0.00 sec) MariaDB [market]> insert into user_order(u_id,username,money)values(1,'HA',234),(2,'LB',146),(3,'HPC',256); # 向user_order数据表插入三条记录 Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0 MariaDB [market]> select * from user_order; # 查询user_order数据表的所有记录 +------+------+----------+-------+ | o_id | u_id | username | money | +------+------+----------+-------+ | 1 | 1 | HA | 234 | | 2 | 2 | LB | 146 | | 3 | 3 | HPC | 256 | +------+------+----------+-------+ 3 rows in set (0.00 sec) MariaDB [market]> select id,name,sex,money,o_id from userprofile,user_order where id=u_id; # 联表查询 +----+------+-----+-------+------+ | id | name | sex | money | o_id | +----+------+-----+-------+------+ | 1 | HA | 1 | 234 | 1 | | 2 | LB | 2 | 146 | 2 | | 3 | HPC | 1 | 256 | 3 | +----+------+-----+-------+------+ 3 rows in set (0.03 sec)

2.1.2 测试级联删除

MariaDB [market]> delete from userprofile where id=1; # 删除user表中id为1的数据 Query OK, 1 row affected (0.01 sec) MariaDB [market]> select id,name,sex,money,o_id from userprofile,user_order where id=u_id; +----+------+-----+-------+------+ | id | name | sex | money | o_id | +----+------+-----+-------+------+ | 2 | LB | 2 | 146 | 2 | | 3 | HPC | 1 | 256 | 3 | +----+------+-----+-------+------+ 2 rows in set (0.00 sec) MariaDB [market]> select * from user_order; # 查看order表的数据 +------+------+----------+-------+ | o_id | u_id | username | money | +------+------+----------+-------+ | 2 | 2 | LB | 146 | | 3 | 3 | HPC | 256 | +------+------+----------+-------+ 3 rows in set (0.00 sec)

2.1.3 测试级联更新

更新数据之前的状态

MariaDB [market]> select * from userprofile; # 查看userprofile表的数据 +----+------+-----+ | id | name | sex | +----+------+-----+ | 2 | LB | 2 | | 3 | HPC | 1 | +----+------+-----+ 3 rows in set (0.00 sec) MariaDB [market]> select * from user_order; # 查看order表的数据 +------+------+----------+-------+ | o_id | u_id | username | money | +------+------+----------+-------+ | 2 | 2 | LB | 146 | | 3 | 3 | HPC | 256 | +------+------+----------+-------+ 3 rows in set (0.00 sec)

更新数据

MariaDB [market]> update userprofile set id=6 where id=2; # 把userprofile数据表中id为2的用户改为id为6 Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0

更新数据后的状态

MariaDB [market]> select id,name,sex,money,o_id from userprofile,user_order where id=u_id; # 联表查询,可以看出表中已经没有id为2的用户了 +----+------+-----+-------+------+ | id | name | sex | money | o_id | +----+------+-----+-------+------+ | 6 | LB | 2 | 146 | 2 | | 3 | HPC | 1 | 256 | 3 | +----+------+-----+-------+------+ 2 rows in set (0.00 sec) MariaDB [market]> select * from userprofile; # 查看userprofile表的数据,id只剩下3和6 +----+------+-----+ | id | name | sex | +----+------+-----+ | 3 | HPC | 1 | | 6 | LB | 2 | +----+------+-----+ 2 rows in set (0.00 sec) MariaDB [market]> select * from user_order; # 查看user_order表的数据,u_id也改为6 +------+------+----------+-------+ | o_id | u_id | username | money | +------+------+----------+-------+ | 2 | 6 | LB | 146 | | 3 | 3 | HPC | 256 | +------+------+----------+-------+ 2 rows in set (0.00 sec)

2.1.4 测试数据完整性

MariaDB [market]> insert into user_order(u_id,username,money)values(5,"XJ",345); # 单独向user_order数据表中插入数据,插入数据失败 ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`market`.`user_order`, CONSTRAINT `user_order_ibfk_1` FOREIGN KEY (`u_id`) REFERENCES `userprofile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)

在上面的例子中,user_order表的外键约束,user_order表受userprofile表的约束

在user_order里面插入一条数据u_id为5用户,在userprofile表里面根本没有,所以插入数据失败

先向userprofile表中插入记录,再向user_order表中插入记录就可以了

MariaDB [market]> insert into userprofile values(5,"XJ",1); # 先向userprofile数据表中插入id为5的记录,插入数据成功 Query OK, 1 row affected (0.01 sec) MariaDB [market]> insert into user_order(u_id,username,money) values(5,"XJ",345); # 再向user_order数据表中插入数据,成功 Query OK, 1 row affected (0.00 sec) MariaDB [market]> select * from userprofile; # 查询userprofile数据表中的所有记录 +----+------+-----+ | id | name | sex | +----+------+-----+ | 3 | HPC | 1 | | 5 | XJ | 1 | | 6 | LB | 2 | +----+------+-----+ 3 rows in set (0.00 sec) MariaDB [market]> select * from user_order; # 查询user_order数据表中的所有记录 +------+------+----------+-------+ | o_id | u_id | username | money | +------+------+----------+-------+ | 2 | 6 | LB | 146 | | 3 | 3 | HPC | 256 | | 5 | 5 | XJ | 345 | +------+------+----------+-------+ 3 rows in set (0.01 sec)

2.2 方法二:通过alter table创建外键和级联更新,级联删除

语法:

alter table 数据表名称 add [constraint [约束名称] ] foreign key (外键字段,..) references 数据表(参照字段,...) [on update cascade|set null|no action] [on delete cascade|set null|no action] )

例子:

MariaDB [market]> create table user_order1(o_id int(11) auto_increment,u_id int(11) default "0",username varchar(50),money int(11),primary key(o_id),index(u_id)); # 创建user_order1数据表,创建表时不使用外键约束 Query OK, 0 rows affected (0.11 sec) MariaDB [market]> show create table user_order1; # 查看user_order1数据表的创建信息,没有外键约束 +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user_order1 | CREATE TABLE `user_order1` ( `o_id` int(11) NOT NULL AUTO_INCREMENT, `u_id` int(11) DEFAULT '0', `username` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `money` int(11) DEFAULT NULL, PRIMARY KEY (`o_id`), KEY `u_id` (`u_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec) MariaDB [market]> alter table user_order1 add foreign key(u_id) references userprofile(id) on delete cascade on update cascade; # 使用alter修改user_order1数据表,为user_order1数据表添加外键约束 Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [market]> show create table user_order1; # 查看user_order1数据表的创建信息,已经添加了外键约束 +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user_order1 | CREATE TABLE `user_order1` ( `o_id` int(11) NOT NULL AUTO_INCREMENT, `u_id` int(11) DEFAULT '0', `username` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `money` int(11) DEFAULT NULL, PRIMARY KEY (`o_id`), KEY `u_id` (`u_id`), CONSTRAINT `user_order1_ibfk_1` FOREIGN KEY (`u_id`) REFERENCES `userprofile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

3.删除外键

语法

alter table 数据表名称 drop foreign key 约束(外键)名称

例子:

MariaDB [market]> show create table user_order1; # 查看user_order1数据表的创建信息,包含外键约束 +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user_order1 | CREATE TABLE `user_order1` ( `o_id` int(11) NOT NULL AUTO_INCREMENT, `u_id` int(11) DEFAULT '0', `username` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `money` int(11) DEFAULT NULL, PRIMARY KEY (`o_id`), KEY `u_id` (`u_id`), CONSTRAINT `user_order1_ibfk_1` FOREIGN KEY (`u_id`) REFERENCES `userprofile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) MariaDB [market]> alter table user_order1 drop foreign key user_order1_ibfk_1; # 为user_order1数据表删除外键约束,外键名称必须与从`show create table user_order1`语句中查到的相同 Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 MariaDB [market]> show create table user_order1; # 查看user_order1数据表的创建信息,外键约束已经被删除了 +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | user_order1 | CREATE TABLE `user_order1` ( `o_id` int(11) NOT NULL AUTO_INCREMENT, `u_id` int(11) DEFAULT '0', `username` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, `money` int(11) DEFAULT NULL, PRIMARY KEY (`o_id`), KEY `u_id` (`u_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

4.使用外键约束的条件

要想外键创建成功,必须满足以下4个条件:

1、确保参照的表和字段存在。

2、组成外键的字段被索引。

3、必须使用type指定存储引擎为:innodb.

4、外键字段和关联字段,数据类型必须一致。

5.使用外键约束需要的注意事项

1.on delete cascade  on update cascade 添加级联删除和更新:

2.确保参照的表userprofile中id字段存在。

3.确保组成外键的字段u_id被索引

4.必须使用type指定存储引擎为:innodb。

5.外键字段和关联字段,数据类型必须一致。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

MariaDB数据库的特点是什么?

MariaDB 是一个采用 Maria 存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。

这个项目的很多代码都改编于 MySQL 6.0,例如 “pool of threads”功能提供解决多数据连接问题。MariaDB 5.1.41 RC可以到这里下载,32位和64位已编译Linux版本,还包括源代码包。MariaDB基于GPL 2.0发布。

与 MySQL 相比较,MariaDB 更强的地方在于:

Maria 存储引擎

PBXT 存储引擎

XtraDB 存储引擎

FederatedX 存储引擎

更快的复制查询处理

线程池

更少的警告和bug

运行速度更快

更多的 Extensions (More index parts, new startup options etc)

更好的功能测试

数据表消除

慢查询日志的扩展统计

支持对 Unicode 的排序

相对于MySQL最新的版本5.6来说,在性能、功能、管理、NoSQL扩展方面,MariaDB包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等。详情见列表。

参考:网页链接

如何修改mariadb数据库文件路径

操作:

1、创建/data目录

mkdir /data

chmod 777 /data(要给这个目录至少要附加读写权限)

2、把mariadb服务停掉:

  systemctl stop mariadb.service

3、把/var/lib/mysql整个目录复制到/data

  cp -r /var/lib/mysql/* /data/

  这样就把MySQL的数据文档复制到了/data下

4、编辑mariadb的配置文档/etc/my.cnf

在[client]下添加:

把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。

在[mysqld]下添加:

 把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。

 datadir =/datal   (这行没有,需要自己加上)

保存后退出。

5、 chown -R mysql:mysql /data/mysql

6、重新启动mariadb服务

  systemctl start mariadb.service。

mariadb数据库类型怎么填

[root@test01 10.19.166.166 ~ ]

# mysqladmin -u root -p create testdb1

Enter password: // 此处填写MariaDB数据库的密码

[root@test01 10.19.166.166 ~ ]

# mysql

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| hellodb |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| test |

| testdb |

| testdb1 |<---创建的好的库

+--------------------+

1.2:登录MariaDB库创建

MariaDB [(none)]> create database testdb2;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| hellodb |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| test |

| testdb |

| testdb1 |

| testdb2 |<---创建好的库

+--------------------+

(2)MariaDB删除数据库

2.1:使用mysqladmin删除数据库

[root@test01 10.19.166.166 ~ ]

# mysqladmin -u root -p drop testdb1

Enter password: //输入数据库密码

//执行完上面的删除命令后,会出现一个提示框,提示是否确认删除此数据库

Dropping the database is potentially a very bad thing to do.

Any data stored in the database will be destroyed.

Do you really want to drop the ‘testdb1‘ database [y/N] y //删除

Database "testdb1" dropped

登录查看

MariaDB [(none)]> show databases; //确认testdb1已被删除

+--------------------+

| Database |

+--------------------+

| hellodb |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| test |

| testdb |

| testdb2 |

+--------------------+

2.2:登录MariaDB库删除

MariaDB [(none)]> drop database testdb2;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show databases; //确认testdb2已被删除

+--------------------+

| Database |

+--------------------+

| hellodb |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| test |

| testdb |

+--------------------+

(3)MariaDB选择数据库,查看选择库下面的所有表

MariaDB [(none)]> show databases; //查看所有库

+--------------------+

| Database |

+--------------------+

| hellodb |

| information_schema |

| mydb |

| mysql |

| performance_schema |

| test |

| testdb |

+--------------------+

7 rows in set (0.00 sec)

MariaDB [(none)]> use mydb //选择mydb数据库

Database changed

MariaDB [mydb]> show tables; //查看mydb数据库下面所有表信息

+----------------+

| Tables_in_mydb |

+----------------+

| ssc |

| t1 |

| tb2 |

| tb4 |

| tb5 |

+----------------+

5 rows in set (0.00 sec)

Navicat怎么连接MariaDB数据库

方法一:用Navicat自带的SSH进行连接

1.首先我们在Navicat中新建连接

在用户名中填写远程数据库的登录用户名,密码框中填写MySQL登录密码

2.我们进入SSH连接配置

我们在主机名过IP地址一栏写上我们的远程服务器的IP

用户名为我们远程服务器的登录账户,密码就是服务器登录账户密码

3.连接测试

点击 左下方的连接测试,当弹出连接成功时,表示已经连接成功

注:使用该方法进行连接可能需要服务器安装SSH服务

方法二:直接使用IP进行连接

同样我们新建连接,不过我们这次在主机名中不填写localhost,而是直接填写我们远程服务器的IP

用户名仍然是我们数据库的登录账号,密码是数据库登录密码

我们点击连接测试时会显示2003错误

这是因为我们没有对数据库进行远程登录的授权,这时我们可以进入服务器后台,在MySQL命令行中输入以下命令

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; myuser 改为你的数据库用户名 一般为root mypassword 改为数据库登录密码

这时我们继续进行连接测试,但是可能会同样出现错误,这时我们要对MySQL的配置文件进行修改

步骤:(1)cd /etc/mysql (2)vim my.cnf(如果该文件中没有下面的内容则打开/etc/mysql/mysql.conf.d/my.cnf)

MariaDB数据库是不是可以跟Mysql一样的操作?一样的命令

MariaDB数据库管理系统是MySQL的一个分支,目前为止是一样的,就是存储引擎有点不一样。MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

  • 本文相关:
  • 浅谈mysql和mariadb区别
  • centos 7安装mysql5.5和安装 mariadb使用的命令
  • centos7 下mysql重新启动mariadb篇
  • mac中mariadb数据库的安装步骤
  • mariadb的主从复制、主主复制、半同步复制配置详解
  • centos安装和设置mariadb的教程
  • 关于mariadb安装问题小记(cmake error at)
  • 记一次mariadb数据库无法连接
  • centos 7中成功安装mariadb的方法教程
  • mariadb性能调优工具mytop的使用详解
  • centos 7安装mysql5.5和安装 mariadb使用的命令
  • mariadb中1045权限错误导致拒绝用户访问的错误解决方法
  • exchange在接收连接器上启用匿名中继的方法
  • 关于mariadb安装问题小记(cmake error at)
  • centos6.7系统中编译安装mariadb数据库
  • centos安装和设置mariadb的教程
  • mariadb数据库的外键约束实例详解
  • windows server 2016 服务器配置指南 之 mariadb数据库环境搭建方
  • centos 7下安装mysql(mariadb)的教程
  • mac中mariadb数据库的安装步骤
  • MariaDB数据库的特点是什么?
  • 如何修改mariadb数据库文件路径
  • mariadb数据库类型怎么填
  • Navicat怎么连接MariaDB数据库
  • MariaDB数据库是不是可以跟Mysql一样的操作?一样...
  • 如何MySQL和MariaDB数据库修改root密码
  • 如何在MySQL或MariaDB中导入和导出数据库
  • 如何通过VS2012或在C#中连接mariaDB数据库
  • 安装了mariadb数据库怎么启动
  • MariaDB数据库有没有设置登录失败锁定帐号的功能?
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved