美文网首页
mysql-总级别操作

mysql-总级别操作

作者: 戏之地 | 来源:发表于2017-02-20 18:46 被阅读28次

安装

linux

yum -y install mysql mysql-server
or
yum -y install mariadb mariadb-server

设置开机启动

service mysqld start    #开启服务 
chkconfig mysqld on   #设置开机启动
or
systemctl start mariadb
systemctl enable mariadb

查看

ps aux | grep mysql  # 查看进程
netstat -an | grep 3306 # 查看端口

设置密码

mysqladmin -uroot password "123" # 设置初始密码
mysqladmin -u root -p"123" password "new" # 修改root密码 

登录

mysql # 默认root,没有密码
mysql -u root -p # 指定密码,登录本地
mysql -u root -p "123" -h 192.168.12.23 远程登录  用户为root@192.168.12.23
mysql -P代表端口号,-p代表密码

sql语句规范

  • sql命令不区别大小写,字符串常量大写,表名小写
  • 命令结束必须有分号
  • 可以换行,让复合命令可以提高可读性
SELECT * FROM tb_table
            WHERE NAME="YUAN"
  • DDL,DML,DCL的区别
  • DML(Database Manipulation Language)
    SELECT、UPDATE、INSERT、DELETE
  • DDL(Database Definition Language)
    DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
  • DCL(Data Control Language)
    是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权
    力执行DCL

常用命令

# 启动mysql和停止mysql
net start mysql
net stop mysql
# service mysql start

忘记密码怎么办

启动mysql时,跳过授权表

[root@controller ~]# service mysqld stop
[root@controller ~]# mysqld_safe --skip-grant-table &
[root@controller ~]# mysql
mysql> select user,host,password from mysql.user;
+----------+-----------------------+-------------------------------------------+
| user     | host                  | password                                  |
+----------+-----------------------+-------------------------------------------+
| root     | localhost             | *A4B6157319038724E3560894F7F932C8886EBFCF |
| root     | localhost.localdomain |                                           |
| root     | 127.0.0.1             |                                           |
| root     | ::1                   |                                           |
|          | localhost             |                                           |
|          | localhost.localdomain |                                           |
| root     | %                     | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+----------+-----------------------+-------------------------------------------+
mysql> update mysql.user set password=password("123") where user="root" and host="localhost";
mysql> flush privileges;
mysql> exit
[root@controller ~]# service mysqld restart
[root@controller ~]# mysql -uroot -p123

删除数据库

删除与权限相关的库mysql,所有的授权信息都丢失,主要用于测试数据库或者刚刚建库不久没有授权数据的情况
[root@controller ~]# rm -rf /var/lib/mysql/mysql
[root@controller ~]# service mysqld restart
[root@controller ~]# mysql

配置数据库编码

查看数据库编码

  • mysql > \s
    这里我们看到这个编码我们都设置为uft8了
    如果只查看当前数据库的编码方式:
    show create database db_name

windows下

将安装目录的mydefault.cnf复制一份进行修改
因为我的系统是linux,故不写windows了

linux下

在我的linux mint下配置

  • linux mint my.cnf位置

从中可以看出,总的配置文件在/etc/alternative/my.cnf
然后在其中添加如下

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8

需要添加的内容

修改数据库编码

alter database db_name character set = utf8
但是基本上不起作用,我也不知道原因

另外一篇mysql中文乱码配置

里面有好多关于数据库的内容
此篇文章为精品

内容如下:

一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
character_set_database和character_set_server的默认字符集还是latin1。

二、最简单的完美修改方法,修改mysql的my.cnf

文件中的字符集键值(**注意配置的字段细节**):
1、在[client]字段里加入default-character-set=utf8,
如下:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
2、在[mysqld]字段里加入
character-set-server=utf8,
如下:
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8
3、在[mysql]字段里加入default-character-set=utf8,
如下:
[mysql]
no-auto-rehash
default-character-set=utf8
修改完成后,service mysql restart重启mysql服务就生效。
注意:[mysqld]字段与[mysql]字段是有区别的。这点在网上没人反馈过。
使用SHOW VARIABLES LIKE ‘character%’;
查看,发现数据库编码全已改成utf8。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
  • 第四步

数据库操作

#创建数据库
create database [if not exists] db_name [character set xxx] 
//创建一个数据库对应在磁盘上创建一个文件夹,没有区别
if not exists 如果有的话,就不创建了,不会覆盖原来存在的
#查看数据库
show databases; # 查看全部数据库
show create database db_name;# 查看数据库的创建方式和创建时的信息
#删除数据库
drop db_name
# 查看警告
show warnings
# 修改数据库
alter database db_name # 后面可以添加character set= utf8
# 使用数据库
use db_name注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换
# 查看当前使用的数据库
select database();

数据库数据类型

mysql大致可以分成三种类型:数值,字符,日期

数值

double(4,2)这个类型为double,长度为4,小数位2,整数位2

  • 数值类型

字符

  • 字符类型
  • CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换
  • BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。
  • BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同
  • 有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

日期格式

  • 日期格式

相关文章

  • mysql-总级别操作

    安装 linux 设置开机启动 查看 设置密码 登录 sql语句规范 sql命令不区别大小写,字符串常量大写,表名...

  • mysql-表级别操作

    创建表 查看表信息 修改表信息 alter table tb_name 命令 增加字段:add 修改列类型:mod...

  • mysql-纪录级别操作

    增加记录 修改表记录 删除表记录 查询表记录 执行顺序 Mysql在执行sql语句时的执行顺序:from wher...

  • 08 MySQL-初识MySQL-事务-隔离鉴别

    如果没有特别说明,都是默认autocommit=1 根据我的第三篇03 MySQL-初识MySQL-事务隔离级别提...

  • mysql-隔离级别

    事务隔离级别 https://mp.weixin.qq.com/s/x_7E2R2i27Ci5O7kLQF0UA[...

  • Mysql-事务隔离级别

    事务隔离级别 my_id是主键 mysql> select * from mytable; +----------...

  • 03 MySQL-初识MySQL-事务隔离级别

    事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。MySQL是一...

  • Mysql-终端操作

    启动MySQL服务 sudo /usr/local/MySQL/support-files/mysql.serve...

  • mysql-表操作

    1.查看表结构 describe 表名 describe可简写为desc。describe语句可以查看表的基本的定...

  • MySQL-基础操作

    创建数据库 语句-CREATE DATABASE name 使用数据库 语句-USE name 创建表 语句-CR...

网友评论

      本文标题:mysql-总级别操作

      本文链接:https://www.haomeiwen.com/subject/knpewttx.html