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

相关推荐
等....1 分钟前
Redis使用
数据库·redis·mybatis
betazhou3 分钟前
记一次Oracle REDO在线日志损坏故障修复
数据库·oracle·redo·ora-00600
一只小bit3 分钟前
Redis 初步入门教程:简单介绍和安装配置
数据库·redis·缓存
仲芒10 分钟前
[24年单独笔记] MySQL 引擎架构
笔记·mysql·架构
ChatInfo15 分钟前
Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模
数据库·人工智能·mysql
SPC的存折39 分钟前
6、MySQL设置TLS加密访问
linux·运维·服务器·数据库·mysql
老苏畅谈运维40 分钟前
DBA分析 ORA 报错的利器,errorstack让 Oracle 错误现原形
数据库·oracle·dba
紫青宝剑1 小时前
向量数据库 Milvus
数据库·milvus
雪碧聊技术1 小时前
数据库系统基础知识
数据库
Elastic 中国社区官方博客1 小时前
如何使用 LogsDB 降低 Elasticsearch 日志存储成本
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·可用性测试