MySQL程序操作

#启动MySQL服务(windows):
net start mysqld

#停止MySQL服务(windows):
net stop mysqld

#启动MySQL服务(linux):
service mysqld start

#停止MySQL服务(linux):
service mysqld stop

#登录数据库:
mysql -u 用户名 -p (回车后输入密码)

#登录到MySQL服务器 :
mysql -h 主机地址(不填则连接本地数据库)-P 端口 -u 用户名 -p 密码(明文)

#退出MySQL:
QUIT;

#查看MySQL版本号
show variables like '%version%';

数据库和表操作

#显示数据库和表:
SHOW DATABASES; / SHOW TABLES;

#查询表是否存在
SHOW TABLES LIKE '%表名%';

#创建数据库:
CREATE DATABASE 新数据库名;

#创建新数据库,指定字符集和排序方式
CREATE DATABASE `数据库名` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

#查看数据库默认字符编码
show variables like "%character%";show variables like "%collation%";

#创建表:
CREATE TABLE 新数表名 (字段名1 数据类型1,字段名2 数据类型2...);

#删除数据库和表:
DROP DATABASE 数据库名; / DROP TABLE 表名;

#删除所有表(生产删表语句,然后手动执行)
SELECT CONCAT('DROP TABLE `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'disp_justcall';

#清空表(保留结构,只清空数据)
truncate table 表名

#选择数据库:
USE 数据库名;

#显示表结构:
DESC 表名;

#更新字段值:
UPDATE 表名 SET 列名='新值' WHERE 字段名='字段值';

#替换字段中的部分内容
update 表名 SET `字段名` = REPLACE(`字段名`,"老值","新值") WHERE 条件;
update 表名 SET `字段名` = REPLACE(`字段名`,"老值","新值");
#不带条件就全部改

#更改列名:
ALTER TABLE 表名 CHANGE 现字段名 新字段名 新字段属性;

#重命名表:
RENAME TABLE 现表名1 TO 新表名1,现表名2 TO 新表名1;

#删除记录:
DELETE FROM 表名 WHERE 定位描述;

#插入记录:
INSERT INTO 表名 (字段名1,字段名2...) VALUES (值1,值2...);

#搜索记录
SELECT * FROM 表名 WHERE 字段名 = "值";

用户管理

#创建新用户(5.7)
CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码";

#创建新用户(8.0)
CREATE USER "用户名"@"IP地址";

#删除用户
DROP USER "用户名"@"IP地址";

#更改当前用户的密码(5.7):
SET PASSWORD = PASSWORD('新密码');

#修改特定用户密码(5.7)
SET PASSWORD FOR root@"%"=password("123456");

#修改特定用户密码(8.0)
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

#更改指定用户的密码:(系统命令行界面)
mysqladmin -u 用户名 -p password 新密码;(按ENTER后提示输入当前密码。确认后密码更改生效。)

#赋予用户权限(同时创建一个新mysql用户)
grant all privileges on 数据库.* to '用户名'@'%' identified by '密码';
(创建新用户,同时设定密码。即将在新版本中移除此功能。)

grant all privileges on 数据库.* to '用户名'@'%';
#建议单独设置权限,使用CREATE USER命令创建用户。

grant all privileges on 数据库.* to '用户名'@'%' with grant option;
#MySQL 8.0 后的版本授权命令格式

grant insert,delete,update,select on 数据库.* to 用户名@"%";
#授权增、删、改、查权限。

show grants for root;
#查看特定用户的权限

#更新权限
FLUSH PRIVILEGES;

#查看所有mysql用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

数据库维护操作

#备份数据库:
mysqldump -u 用户名 -p --databases 数据库1 数据库2... >备份至目标目录(例如:>d:/backup.sql)
#例子:
mysqldump  -uroot -p --add-drop-database --all-databases > /root/ywngo.com_mysql_all_db.sql
#导出全部数据库。同时包含drop数据库语句,导入前无需先建立数据库。

#恢复数据库:
mysql -u 用户名 -p 数据库名称 <备份文件地址(例如:<d:/backup.sql)

标签: Database, MySQL

添加新评论