数据库安装配置

MYSQL数据库安装

参考:https://www.cnblogs.com/Eva-J/articles/9669675.html'

MYSQL数据库安装配置文件

#在数据库安装目录下创建一个my.ini文件,写入下面的配置,然后重启服务端(注意保存,复制pycharm上修改文件路径即可)**********

[client]
#设置mysql所有客户端默认字符集
default-character-set=utf8

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
user = 'root'
password = 'root'
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:mysoftwaremysql-5.6.45-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:mysoftwaremysql-5.6.45-winx64data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#设置严格模式
sql_mode=STRICT_TRANS_TABLES

sql_mode设置

  • sql_mode的解释

    sql_mode是个很容易忽视的变量,默认值是空值(5.6版本,5.7版本是严格模式),在这种模式下允许一些非法操作,比如一些非法数据的插入,在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题.
    
  • sql_mode常用来解决这几种问题

    (1) 通过设置sql mode, 可以完成不同严格程度的数据校验,有效地保障数据准备性。
    (2) 通过设置sql model 为宽松模式,来保证大多数sql符合标准的sql语法,这样应用在不同数据库之间进行迁移时,则不需要对业务sql 进行较大的修改。
    (3) 在不同数据库之间进行数据迁移之前,通过设置SQL Mode 可以使MySQL 上的数据更方便地迁移到目标数据库中
    
  • sql_mode的查询和修改方式

    #方式一:
    执行sql语句:	select @@sql_mode可以查看当前会话框的sql_mode模式,
    执行sql语句:	set session sql_mode='STRICT_TRANS_TABLES',就改为严格模式
    	此方法在次回话关闭之后,就会失效
    #方式二:
    执行sql语句:	select @@global.sql_mode 查看当前全局的sql_mode设置
    执行sql语句:	set global.sql_mode = 'STRICT_TRANS_TABLES',就回修改尾严格模式
        此方法在mysql服务关闭重启之后失效,只在此次服务中有效
    #方法三:
    再mysql安装目录下,找到配置文件,在mysqld的配置文件下添加:
    sql_mode = 'STRICT_TRANS_TABLES',就能设置成严格模式,此方法需要重启mysql服务,	
    	从方法永久生效.当然公司的生产环境上事禁止重启mysql服务的
    

查看mysql所有的编码格式

#查看字符集编码的指令:
	show variables like '%char%';

MYSQL客户端链接服务端的完整指令

#完整版指令
mysql -h 127.0.0.1 -P 3306 -uroot -p(密码)
#平时使用的版本
mysql -uroot -p(密码)

mysql登陆密码忘记后的修改方式

#1:停掉Mysql服务端
net stop mysql
#2:在cmd中路径切换到Mysql安装目录下的bin目录,然后手动启动mysql服务端:
mysqld.exe --skip-grant-tables
#3:服务端启动成功后,重新启动一个新的cmd窗口,链接mysql服务端
#4:修改mysql这个库中的user表中的root用户记录的密码
update user set password = password('123') where user='root';
#5:关掉mysqld服务端:
tasklist | findstr mysqld#找到mysqld的服务
taskkill /F /PID 进程号#关闭mysqld的服务
#6:重新启动mysql服务端(正常启动)

登陆Mysql后修改密码的三种方式

#方法1: 用SET PASSWORD命令 
    首先登录MySQL,使用mysql自带的那个客户端连接上mysql。 
    格式:mysql> set password for 用户名@localhost = password('新密码'); 
    例子:mysql> set password for root@localhost = password('123');
#方法2:用mysqladmin  (因为我们将bin已经添加到环境变量了,这个mysqladmin也在bin目录下,		所以可以直接使用这个mysqladmin功能,使用它来修改密码)
    关于mysqladmin的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和		当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin的很多功能通过使		用MySQL自带的mysql客户端可以搞定,但是有时候使用mysqladmin操作会比较简单。
    格式:mysqladmin -u用户名 -p旧密码 password 新密码 
    例子:mysqladmin -uroot -p123456 password 123
#方法3:用UPDATE直接编辑那个自动的mysql库中的user表 
    1:首先登录MySQL,连接上mysql服务端。 
    2:mysql> use mysql;   use mysql的意思是切换到mysql这个库,这个库是所有的用户表		和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库里面的表。
    3:mysql> update user set password=password('123') where user='root' and 		host='localhost';   #其中password=password('123') 前面的password是变量,后面		的password是mysql提供的给密码加密用的,我们最好不要明文的存密码,对吧,其中user是		一个表,存着所有的mysql用户的信息。

    4:mysql> flush privileges;  #刷新权限,让其生效,否则不生效,修改不成功

MYSQL账号操作(了解)

mysql> select user();  #查看当前用户
mysql> exit     # 也可以用q quit退出

# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p   # mysql5.6默认是没有密码的
#遇到password直接按回车键
mysql> set password = password('root'); # 给当前账户设置密码

# 创建账号(IDENTIFIED BY '123',指定密码)
create user 'eva'@'192.168.10.%' IDENTIFIED BY '123';# 指示该网段可以使用eva登陆
create user '田彩'@'192.168.10.5' IDENTIFIED BY '123';   # 指示ip和用户名连接
create user 'eva'@'%' IDENTIFIED BY '123';  #指示所有机器都可以通过eva账户连接  
drop user 'eva'@'192.168.1.1'     #删除用户
rename user '用户名'%'IP地址' to '新用户名'%'IP地址';#修改用户名
set password for '用户名'%'IP地址'=password('新密码');#修改用户密码
 
# 远程登陆(使用创建的账号,在别人的电脑)
mysql -uroot -p123 -h 192.168.10.3;
mysql -h 192.168.10.3 -P 3306 -uroot -p123;

# 给账号授权
grant all privileges on *.* to 'eva'@'%'; #给eva用户所有的权限(privileges可以不写)
grant select,insert on 数据库.表名 to '田彩'@'%';#给用户某个库中某个表的查询,增加权限
grant all privileges  on db1.* to "chao"@'%';#chao用户对db1数据库中的文件执行任何操作
grant all privileges  on *.*  to "chao"@'%';#chao用户对所有数据库中文件有任何操作
show grants for 'eva'@'192.168.10.5';#查看某个用户的权限
flush privileges;    # 刷新使授权立即生效

#取消权限
revoke all on db.t1 from 'cai'@'%';#取消用户cai对t1表的所有操作
revoke all on db.* from 'cai'@'%';#取消用户彩对db库的所有权限
revoke all on *.* from 'cai'@'%'#取消用户彩对所有数据库所有表的权限

# 创建账号并授权(*代表所有)
mysql> grant all on 数据库.表名 to 'eva'@'%' identified by '123'
mysql> grant select on *.* to 'eva'@'%' identified by '123'
原文地址:https://www.cnblogs.com/luckinlee/p/11621131.html