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创建密码为空的用户

相关推荐
777VG3 分钟前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
aax121345333 分钟前
VOC 集群治理工程实操|美丽蓝天绿岛项目 RTO 工艺选型、管控方案与申报要
大数据·数据库·人工智能
IvorySQL1 小时前
PG 日报|优化缓冲区批量扫描,降低多套接字并发竞争
数据库·人工智能·postgresql·开源·区块链
这个DBA有点耶1 小时前
交易型数据库是什么?OLTP核心能力与2026选型指南
数据库·数据仓库·sql·database·数据库架构·olap·dba
大熊猫侯佩1 小时前
WWDC26 全新 SwiftData 的 .codable 宏选项:它不是泛型专用胶水
数据库·swift·apple
童谣14 小时前
越华环保集团市级统筹申报数字化中台:政策校验与减排仿真一体化架构
数据库·架构
制造数据与AI践行者老蒋4 小时前
离谱!PromptTemplate 遇上 JSON,花括号直接引发解析战争
数据库·microsoft·json
中微极客4 小时前
用LangChain 0.3构建生产级RAG与Agent:从API集成到Streamlit部署
数据库·人工智能·langchain
吴声子夜歌4 小时前
MongoDB 4.x——并发优化
数据库·mongodb
不如语冰5 小时前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python