Mysql是一个典型的C/S服务结构,它自带客户端,例如:mysql、mysqladmin和mysqldump等。
初始状态下,管理员root的密码为空或者是随机生成的,而且只允许本机登录。一般情况下,我们安装好Mysql之后的第一件事就是修改默认的密码。
# 设置初始密码 由于原密码为空,因此-p可以不用 [root@localhost ~]# mysqladmin -uroot password "123" # 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码 [root@localhost ~]# mysqladmin -uroot -p"123" password "456"
Mysql的连接方式和工具有很多种
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
通常情况下不使用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> 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)
mysql> CREATE DATABASE IF NOT EXISTS test01 CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> ALTER DATABASE test01 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> use <数据库>; Database changed
mysql> DROP DATABASE <数据库>; Query OK, 0 rows affected (0.00 sec)
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
mysql> CREATE TABLE city ( id int ); Query OK, 0 rows affected (0.00 sec)