MySQL数据库基本管理

MySQL数据库基本管理

Mysql是一个典型的C/S服务结构,它自带客户端,例如:mysql、mysqladmin和mysqldump等。

1.设置MySQL密码

初始状态下,管理员root的密码为空或者是随机生成的,而且只允许本机登录。一般情况下,我们安装好Mysql之后的第一件事就是修改默认的密码。

#  设置初始密码 由于原密码为空,因此-p可以不用
[root@localhost ~]# mysqladmin -uroot password "123"    
 
# 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
[root@localhost ~]# mysqladmin -uroot -p"123" password "456"        

2.MySQL连接工具与方式

​ Mysql的连接方式和工具有很多种

2.1MySQL自带的连接命令公式

mysql
#常见的特定于客户机的连接选项:
-u:             指定用户  mysql -uroot
-p:             指定密码  mysql -uroot -p567
-h:             指定主机域  mysql -uroot -p567 -h127.0.0.1
-P:             指定端口    mysql -uroot -p567 -h127.0.0.1 -P3307
-S:             指定socket文件 mysql -uroot -p567 -S /tmp/mysql.sock
-e:             指定SQL语句(库外执行SQL语句) mysql -uroot -p567 -e "show databases;"
--protocol:     指定连接方式 mysql --protocol=TCP  --protocol=socket

1.登入MySQL服务器
#1.正确登录命令
[root@localhost ~]# mysql -uroot -p123
[root@localhost ~]# mysql -u root -p123
[root@localhost ~]# mysql  # 以root用户登录本机,密码为空
 
#2.错误登录命令
[root@localhost ~]# mysql -u root -p 123  # -p选项与密码之间不要有空格

2.连接方式
1. TCP/IP的连接方式
2. 套接字连接方式,socket连接
3. 默认使用socket方式连接
 
#查看连接方式
mysql> status;
--------------
Connection:     Localhost via UNIX socket
 
3.举例:
    3.1.TCP/IP连接,通常带有-h选项的都是TCP/IP链接
      mysql -uroot -p -h127.0.0.1 -P 端口号
      mysql -uroot -p -h127.0.0.1 -S /tmp/mysql.sock
 
    3.2.socket连接
    	mysql -uroot -p123(默认连接方式,socket)
 
4.注意:
    4.1.因为使用TCP/IP连接,需要建立三次握手
    4.2.不一定-h都是tcp,-hlocalhost是socket连接
        mysql -uroot -p -hlocalhost

2.2第三方工具连接

通常情况下不使用Mysql自带的数据库连接工具来连接数据库的,一般情况下我们使用的是第三方数据库连接工具来连接Mysql的。其中我们最常用的数据库连接工具是navicat来连接数据库,这个数据库连接工具的功能非常强大,非常适合用来操作数据库。

# 在链接之前,必须创建远程连接用户

1.mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Test123!' WITH GRANT OPTION;
			
			ALL PRIVILEGES : 所有的权限
			*.*				: 正对于所有的库所有的表
			root			: 用户名
			localhost		: 可以链接的IP(%代表所有的IP)
	
2.FLUSH PRIVILEGES;   # 刷新权限

MySQL数据库基本管理
MySQL数据库基本管理
MySQL数据库基本管理

3.SQL操作数据库

3.1查询数据库

-- 查询所有的数据库
mysql> show databases;

-- 查看数据库的创建SQL
mysql> show create database mysql;

-- 查看正在使用的数据库
mysql> use mysql

-- 查看字符集编码
mysql> show variables like '%char%'

-- 查看正在使用的数据库
mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

3.2创建数据库

mysql> CREATE DATABASE IF NOT EXISTS test01 CHARACTER SET utf8 COLLATE utf8_general_ci;

3.3修改数据库

mysql> ALTER DATABASE test01 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3.4指定数据库

mysql> use <数据库>;
Database changed

3.5删除数据库

mysql> DROP DATABASE <数据库>;
Query OK, 0 rows affected (0.00 sec)

MySQL数据库基本管理

4.MySQLadmin命令

1.修改密码,设置密码:password
1.1: [root@db01 ~]# mysqladmin -uroot -p旧密码 password '新密码'
1.2: MySQL > grant all privileges on *.* to root@'%' identified by '123456';
 
2.关闭MySQL服务:shutdown
[root@db01 ~]# mysqladmin -uroot -p密码 -S socket文件 shutdown
 
3.库外建库:create
[root@db01 ~]# mysqladmin -uroot -p密码 create egon
[root@db01 ~]# mysql -uroot -p123456 -e 'create database egon'
 
4.库外删除数据库:drop
[root@db01 ~]# mysqladmin -uroot -p123456 drop egon
Do you really want to drop the 'egon' database [y/N] y
Database "egon" dropped
 
5.查看配置文件所有的默认参数:variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables
[root@db01 ~]# mysqladmin -uroot -p123456 variables | grep server_id
 
6.检测MySQL进程是否存活:ping
[root@db01 ~]# mysqladmin -uroot -p123456 ping
 
7.查看数据库 慢查询,负载信息:status
[root@db01 ~]# mysqladmin -uroot -p123456 status
Uptime                   MySQL服务器已经运行的秒数
Threads                  活跃线程(客户)的数量 
Questions                从mysqld启动起来自客户问题的数量   已经发送给服务器的查询的个数
Slow queries             已经超过long_query_time秒的查询数量 
Opens                    mysqld已经打开了多少表 
Flush tables             flush ..., refresh和reload命令数量 
Open tables              现在被打开的表数量
Queries per second avg: 0.046   负载
 
8.重载授权表,刷新缓存主机:reload,相当于flush privileges
[root@db01 ~]# mysqladmin -uroot -p123456 reload
 
9.刷新binlog日志
[root@db01 ~]# mysqladmin -uroot -p123456 flush-log

5.MySQL数据中的数据类型

5.1创建数据表

mysql> CREATE TABLE city ( id int );
Query OK, 0 rows affected (0.00 sec)
上一篇:usaco training 4.1.2 Fence Rails 题解


下一篇:简单四则运算(study03)