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

你可能感兴趣的:(MySQL,mysql,数据库)