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

相关推荐
马尔代夫哈哈哈7 小时前
Spring IoC&DI
数据库·sql
液态不合群9 小时前
[特殊字符] MySQL 覆盖索引详解
数据库·mysql
计算机毕设VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
瀚高PG实验室9 小时前
PostgreSQL到HighgoDB数据迁移
数据库·postgresql·瀚高数据库
打码人的日常分享10 小时前
智能制造数字化工厂解决方案
数据库·安全·web安全·云计算·制造
三水不滴10 小时前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
-孤存-11 小时前
MyBatis数据库配置与SQL操作全解析
数据库·mybatis
2301_8223663512 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
万邦科技Lafite13 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台
自可乐13 小时前
Milvus向量数据库/RAG基础设施学习教程
数据库·人工智能·python·milvus