数据库连接常用命令
mysql -uroot -proot -- 登录数据库
UPDATE mysql.user set authentication_string = PASSWORD ("root") WHERE User = "root" and Host="localhost"; -- 修改数据库权限
show databases; -- 显示所有的数据库
show tables; -- 显示所有的数据表
describe student; -- 显示数据表的设计结构
create database westos; -- 创建数据库
exit -- 退出mysql连接
-- 单行注释
/* 多行注释 */
修改数据库远程连接
- MySQL Community Edition(GPL)
在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户是没有远程访问的权限。
下面介绍两种方法,解决这一用户远程访问的权限问题。
1、改表法
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法
在安装mysql的机器上运行mysql的客户端 :MySQL 8.0 Command Line Client :
1、mysql> use mysql;
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
//赋予任何主机访问数据的权限
例如,你想 root 使用 password 从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
例如:如果你想允许用户myuser从ip为192.168.1.1的主机连接到mysql服务器,并使用password作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.1' IDENTIFIED BY 'password' WITH GRANT OPTION;
3、mysql>FLUSH PRIVILEGES;
//修改生效
4、mysql>EXIT
退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录
MySQL Community Server (GPL)
授权法
在安装mysql的机器上运行mysql的客户端 :MySQL 8.0 Command Line Client
1、mysql> use mysql;
//这样应该可以进入MySQL服务器
2、mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
//% 表示 赋予任何主机访问数据的权限,例如,你想 root 使用 password 从任何主机连接到mysql服务器的话,如果想使用指定的IP来连接mysql的话,只需要把%改成对应的ip即可。
3、mysql> ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456';
4、mysql> ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by '123456';
5、mysql> flush privileges;
6、mysql>EXIT
退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录
操作数据库
-- 创建数据库
CREATE DATABASE demo2;
CREATE DATABASE IF NOT EXISTS demo2;
-- 创建数据库,并设置字符编码utf8,默认是latin1(不支持中文)
create database if not exists `school` character set utf8 collate utf8_general_ci;
-- 删除数据库
DROP DATABASE demo2;
DROP DATABASE IF EXISTS demo2
-- 如果表名或者字段名是一个特殊的字符,就必须带`,建议表明和字段就使用,避免出现歧义
USE `school`;
-- 查看所有数据库
show databases;
数据表
-- 创建数据表student
-- 字段名 数据类型 [属性] [索引] [注释]
-- AUTO_INCREMENT 自增长
create table if not exists `student`(
`id` int not null auto_increment comment '唯一标识',
`name` varchar(30) not null default '匿名' comment '姓名',
`sex` varchar(2) not null default '女' comment '性别',
`pwd` varchar(20) not null default '123456' comment '密码',
`birthday` datetime default null comment '出生日期',
`address` varchar(50) default null comment '家住地址',
`email` varchar(20) default null comment '电子邮箱',
primary key(`id`)
)engine=innodb default charset=utf8
记忆技巧:
-- 固定格式
create TABLE IF NOT EXISTS `表名`(
`字段` 字段类型 [属性] [索引] [注释],
`字段` 字段类型 [属性] [索引] [注释],
...
`字段` 字段类型 [属性] [索引] [注释],
primary key(`字段名`)
)engine=innodb default`student` charset=utf8
查找常用操作的sql语句(SqlYog)
show create database school; -- 查看创建数据库的sql语句
Database Create Database
school CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */
show create table student; -- 查看创建表的sql语句
DESC student; -- 查看表结构