Mysql之安装-字符集设置-用户及权限操作-sqlmode设置

1、概述

MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。使用标准的SQL数据语言形式。

2、Linux的mysql安装

(1)检查是否已安装:rpm -qa|grep mysql

(2)卸载命令:rpm -e --nodeps mysql-libs

(3)给/tmp赋权:chmod -R 777 /tmp

(4)rpm安装:rpm -ivh MySQL-client**.rpm 、 rpm -ivh MySQL-server**.rpm

(5)查看安装版本:mysqladmin --version

(6)启停:service mysql start/stop

(7)首次登录:/usr/bin/mysqladmin -u root password '123111' 、 mysql -uroot -p123123

(8)查看安装位置:ps -ef|grep mysql

3、字符集

(1)查看(缺省是latin1编码,会导致中文乱码):

mysql> show variables like 'collation_%';

mysql> show variables like 'character_set_%';

(2)修改库的编码

mysql> alter database db_name character set utf8;

(3)修改表的编码

mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

(4)在mysql中设置编码,单个设置(重启后会失效)

mysql> set character_set_connection=utf8;

mysql> set character_set_database=utf8;

mysql> set character_set_results=utf8;

mysql> set character_set_server=utf8;

(5)修改配置文件(改后重启)

root@Hadoop48 \~# vi /etc/my.cnf

mysql

default-character-set=utf8

client

default-character-set=utf8

mysqld

default-character-set=utf8

character_set_server=utf8

init_connect='SET NAMES utf8'

4、操作用户

(1)创建用户

mysql> create user etlu identified by '111111';

(2)修改当前用户的密码

mysql> set password =password('123456');

(3)修改某个用户的密码(通过user表的修改,必须用flush命令才能生效)

mysql> update mysql.user set password=password('123456') where user='getl';

mysql> flush privileges;

(4)修改用户名

mysql> update mysql.user set user='getl1' where user='getl';

mysql> flush privileges;

(5)删除用户

mysql> drop user getl1 ;

(6)查看用户信息

mysql> select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;

5、权限管理

(1)授权(grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';)

mysql> grant select,insert,delete,drop on etluser.* to etlu@localhost ;

mysql> grant all privileges on . to root@'%' identified by '123';

(2)收回权限

revoke 权限1,权限2,...权限n on 数据库名称.表名称 from 用户名@用户地址 ;

(3)查看权限

查看当前用户权限:show grants;

查看某用户的全局权限:select * from user ;

查看某用户的某个表的权限:select * from tables_priv;

6、sql_mode设置

(1)查看

mysql> show variables like 'sql_mode';

(2)设置

set global sql_mode = '修改后的值'; (重启后失效)

set session sql_mode='修改后的值'; (会话生效)

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER (配置文件,需重启后生效)

ONLY_FULL_GROUP_BY:

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

STRICT_TRANS_TABLES:

在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制

ERROR_FOR_DIVISION_BY_ZERO:

在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

NO_AUTO_CREATE_USER:

禁止GRANT创建密码为空的用户

相关推荐
freejackman21 分钟前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
bksczm35 分钟前
InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer
数据库·mysql
招风的黑耳37 分钟前
SpringBoot+Vue+MySQL 民宿在线预定平台 完整可运行版(源码+文档)
vue.js·spring boot·mysql
花间相见43 分钟前
【计算基础|Redis02】【上手】五大数据类型命令逐条实操
数据库·redis·后端
敲上瘾2 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
bksczm3 小时前
Redis 持久化:RDB 快照与 AOF 日志
数据库·redis·mybatis
.痞老板.3 小时前
mysql初阶--数据库设计
数据库·mysql·oracle
Decay__4 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks5 小时前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__13 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构