环境:windows server 2012 R2 (64位系统)
安装mysql说来简单,但安装后要配置用户和权限,有那么一点点流程和语法记录一下。
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip
解压到 C:Program Files 目录,mysql目录为:
C:Program Filesmysql-5.7.21-winx64
运行mysqld.exe报错解决:
mysqld.exe - 系统错误,无法启动此程序,因为计算机中丢失 MSVCR120.dll。尝试重新安装该程序以解决此问题。
http://down-www.newasp.net/pcdown/soft/soft1/VC_RedistInstaller.rar
腾讯云服务器:在web管理-安全组-添加允许3306端口的规则
在控制面板-Windows 防火墙-高级设置,添加入站规则和出站规则 ,允许tcp:3306端口
在mysql目录下创建my.ini,内容:
[mysql] default-character-set=utf8 [mysqld] port = 3306 basedir=C:Program Filesmysql-5.7.21-winx64 datadir=C:Program Filesmysql-5.7.21-winx64data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB
运行命令,初始化数据库和安装启动服务
cd /d C:Program Filesmysql-5.7.21-winx64in mysqld --initialize-insecure mysqld -install net start mysql
登录:
mysql -u root -p
第一次登录时无需密码直接回车登录
set password for root@localhost = password('mysql12345');
或退出mysql登录,运行命令:
mysqladmin -u root -p password mysql12345
show databases; //所有数据库列表
create database dbName; //创建数据库
use dbName; //选择数据库
show tables; //显示数据表列表
查看数据表中的条目:
desc tableName;
describe tableName;
show columns from tableName;
show create table tableName;
清空数据表中所有条目:
truncate table 表名; //清空全部数据,不写日志,不可恢复,速度极快
delete from 表名; //清空全部数据,写日志,数据可恢复,速度慢
//创建testdb数据库:
create database TestDb;
//创建testtb表:
DROP TABLE IF EXISTS `testtb`; CREATE TABLE `testtb` ( `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `Name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名', `Remark` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注', PRIMARY KEY (`Id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
用户与权限操作,参考:https://www.cnblogs.com/xujishou/p/6306765.html
查询用户:
select user,host from user;
创建用户
use mysql;
创建允许本地登录的用户
CREATE USER 'test'@'localhost' IDENTIFIED BY 'test123456';
创建允许远程登录的用户
CREATE USER 'test'@'%' IDENTIFIED BY 'test123456';
更新用户允许远程登录
update user set host = '%' where user = 'root';
删除用户
DROP USER 'test'@'localhost';
授权
部分权限
GRANT SELECT, INSERT ON testdb.* TO 'test'@'%';
全部权限
GRANT all privileges ON testdb.* TO 'test'@'%';
查询权限
SHOW GRANTS FOR 'test'@'%';
撤销权限:
REVOKE all privileges ON testdb.* FROM 'test'@'%';
最后用navicat远程连接效果: