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

相关推荐
不光头强25 分钟前
Spring框架的事务管理
数据库·spring·oracle
百***92023 小时前
【MySQL】MySQL库的操作
android·数据库·mysql
q***76663 小时前
Spring Boot 从 2.7.x 升级到 3.3注意事项
数据库·hive·spring boot
信仰_2739932433 小时前
Redis红锁
数据库·redis·缓存
人间打气筒(Ada)3 小时前
Centos7 搭建hadoop2.7.2、hbase伪分布式集群
数据库·分布式·hbase
心灵宝贝3 小时前
如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程)
数据库·mysql·macos
想睡hhh3 小时前
mysql索引——理解索引机制及操作
mysql
剑动山河3 小时前
ubuntu 升级mysql由mysql5.7.42 升级到8.4.0
mysql·ubuntu·adb
奋斗的牛马4 小时前
OFDM理解
网络·数据库·单片机·嵌入式硬件·fpga开发·信息与通信
忧郁的橙子.5 小时前
一、Rabbit MQ 初级
服务器·网络·数据库