MySQL命令行问题笔记

数据库不能远程访问怎么办?

前言:PHP study中的MySQL数据库为了安全起见,默认是只允许数据库本地(自己的电脑)连接的,但有时候我们需要远程连接(别人的电脑),就需要如下修改:

首先:/phpstudy/mysql/bin/mysql -uroot -proot -h172.17.0.199; # 登录mysql
其次:使用grant all privileges on来更改用户对应某些库的远程权限
代码:grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;
例子:GRANT ALL PRIVILEGES ON *.* TO 'yonghuming'@'%' IDENTIFIED BY 'mima' WITH GRANT OPTION;

说明:上面代码表示用户名为“yonghuming” ,密码为:“mima” 的用户在任何主机下都可以远程连接这个数据库,之后重启数据库即可生效


Mysql如何新增用户并授权?

  • 进入mysql终端
  • 创建账号:create user istester[账号名] identified by ‘istester@321 [账号名] @[账号密码]’;
  • 将数据库test赋给istester用户
授权命令格式:grant privilegesCode on dbName.tableName to username@host identified by "password";
例如:		 grant all privileges on istester.* to istester@'%' identified by 'istester@321';
注意:若想允许远程链接,见[数据库不能远程访问怎么办]
  • 查看权限授予的情况: show grants for istester;

如何使用mysql命令行导出远程数据库?

  • 无需登录MySQL数据库:mysqldump -h172.17.1.68 -uroot -P33060 -p laravel>laravel.sql
  • mysqldump -h数据库主机ip -u用户名 -P数据库开放端口号 -p密码 要导出的数据库>导出的文件名(默认在/bin目录下,可改)。

①导出整个数据库(包括数据库中的数据):mysqldump -u username -ppassword dbname >dbname.sql ;
②导出数据库中的数据表(包括数据表中的数据):mysqldump -u username -ppassword dbname tablename > tablename.sql;
③导出数据库结构(不包括数据,只有创建数据表语句):mysqldump -u username -ppassword -d dbname > dbname.sql;
④导出数据库中数据表的表结构(不包括数据,只有创建数据表语句):mysqldump -u username -ppassword -d dbname tablename > tablename.sql。


如何使用命令导入sql文件?

①在命令窗口输入mysql -uroot -proot(两个root依次表示登陆MySQL数据库的用户名和密码,根据自己的情况更改),接着输入show databases;
②接着输入use db_test(数据库中已经存在名为db_test的空的数据库,表示接下来要对这个db_test数据库进行操作)。
③source c:\Desktop\test.sql(表示将d盘桌面下的test.sql文件导入到db_test数据库下)。

出现问题:

	MariaDB [(none)]> create database reser;
 	Query OK, 1 row affected (0.020 sec)//数据库创建成功
    MariaDB [(none)]> use reser;
    Database changed
    MariaDB [reser]> source D:\reservation.sql;
   ERROR 1049 (42000): Unknown database 'eservation.sql;'
   解决:
   输入成了反斜杠,改为/即可(source D:/ reservation.sql;

总结:就是将一个导出的sql文件导入到另外一个空的数据库中。


如何修改MySQL隔离级别

  • 命令
 SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
  • 实例:
 如:
 //设置隔离级别为读未提交
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
查询MySQL的隔离级别
SELECT @@global.tx_isolation; //查询全局隔离级别
SELECT @@session.tx_isolation;//查询当前会话隔离级别 
SELECT @@tx_isolation;//同上

MySQL如何添加外键约束?

创建com_student表

说明:
如果数据库使用的是MyISAM(ENGINE=MyISAM)引擎,外键会创建成功但是不会起作用(在命令行模式下,亲测有毒)。
即:如果com_student和com_class表都必须要用innodb引擎才可以设置外键。

create table com_student(
id int(11) not null auto_increment primary key,
stu_name varchar(100),
stu_age int(11),
stu_class_id int(11) not null,
/*com_student表中的stu_class_id是com_class表中id列的外键*/
foreign key(stu_class_id) references com_class(id)
)engine=innodb;

创建com_class表

create table com_class(
id int(11) not null auto_increment primary key,
class_name varchar(100) not null,
class_num varchar(100)
)engine=innodb;

添加数据测试外键:

 /**步骤
  *首先往com_class表中添加三条数据,表示有三个班级,id设置了自增所以其主键id分别为1、2、3
  *其次往com_student表中添加学生,外键约束中存在id为3的班级但是没有id是5的班级,所以报错。
 */
 insert into com_class(class_name,class_num) values("class01","c001");
 insert into com_class(class_name,class_num) values("class02","c002");
 insert into com_class(class_name,class_num) values("class03","c003");
 insert into com_student(stu_name,stu_age,stu_class_id) values("minGe002",18,3);
 insert into com_student(stu_name,stu_age,stu_class_id) values("minGe001",18,5);

在这里插入图片描述

MySQL删除外键约束碰到的问题


MySQL命令行修改密码

在终端命令行输入 mysqladmin -u root -p password “新密码” 回车 ,Enter password: 【输入原来的旧密码】

如何在MySQL的数据表中增加一列数据

如果想在一个已经建好的表中添加一列,可以使用如下代码:
1)向已有的表中加入新的一列:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(255) not null;

2)将新的一列加入到表中指定列的后边:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(255) not null after COLUMN_NAME;

3)将新的一列添加到表的第一列的位置:
alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(255) not null first;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值