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)