mysql作为常用的三大数据库之一.
数据库初始化
#初始化
mysqld.exe --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini" --initialize --user=mysql --console
#注册服务
mysqld.exe --install Mysql5.7 --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini"
数据库设置
1)用户创建/授权
//连接数据库
进入cmd命令,输入mysql -u用户名 -p密码
//修改密码
set password for root@localhost =password('xxx');
//创建用户
mysql>create user '用户名'@'host' identified by '密码' //只能本机访问
mysql>create user '用户名'@'%' identified by '密码' //能本机及远程访问
//授权
mysql>grant privileges ON 数据库名.表名(*代表所有表) to '用户名'@'host' //这个授权除了option权限(可授权其他用户)
mysql>grant All ON 数据库名.表名(*代表所有表) to '用户名'@'host' //所有权限
mysql>grant insert,select,delete,update ON 数据库名.表名(*代表所有表) to '用户名'@'host' //增删改查权限
// 创建用户如果提示密码不符合当前策略,则需要改变密码当前策略
// 0代表强度low,1代表中等强度,2代表高级强度
mysql>set global validate_password_policy=0;
/*备注:一般需要用root用户登录,密码也为root,才能给其他用户授权 */
2)数据库大小写区分设置
语句:show variables like '%lower_case_table_names%',可以查看是否区分大小写
通过修改mysql/my.conf文件lower_case_table_names的值可以进行设置.'0'为区分,'1'为不区分
然后重启mysql,设置生效
2 遇到的实际问题
1)版本问题
mysql 5.6版本之后,对时间类型进行了限制,默认空值会报错,无法使用类似'0000-00-00 00:00:00'或者NULL这种表达
2)事务问题
mysql5.5.5之前版本,默认使用myisam引擎,无法支持事务,项目开发时必须手动回滚.@Transaction不生效
如果需要支持事务,应该使用innodb引擎,避免使用myisam.