MySQL基本管理

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了MySQL基本管理脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

MySQL设置密码

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

#  设置初始密码 由于原密码为空,因此-p可以不用
[root@db03 ~]# mysqladmin -uroot password "old.321"   
#这种设置密码暴露在命令行,不安全。推荐下一种

[root@db03 ~]# mysqladmin -uroot password
New password: 
Confirm new password: 
 
# 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
[root@db03 ~]# mysqladmin -uroot -p"123" password "zhang.321"  
#同理,推荐下一种
[root@db03 ~]# mysqladmin -uroot -p password
Enter password: 
New password: 
Confirm new password: 

MySQL修改密码

无论是初始化之后第一次修改密码,还是日常维护中的修改root密码,修改root密码都是非常有必要的。再企业实际生产环境中,要求隔一段时间都会修改密码。那么具体修改密码的方式有哪些,下面我们来演示一下。

1.使用Mysqladmin客户端修改

[root@db03 ~]# mysqladmin -uroot -p password
Enter password: 
New password: 
Confirm new password: 

2.使用alter

mysql> alter user root@localhost identified by 'boy@321';
Query OK, 0 rows affected (0.00 sec)

3.忘记root密码情况下修改

#首先停止mysql
[root@db03 ~]# Systemctl stop mysqld
# --skip-grant-tables 跳过授权表         --skip-networking 禁止远程连接
[root@db03 ~]# mysqld_safe --skip-grant-tables --skip-networking &
#直接连接登录
[root@db03 ~]# mysql
mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
#特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段

#刷新授权表,必须进行的一步
mysql> flush PRivileges; 
Query OK, 0 rows affected (0.00 sec)
#正常启动,进行登录
[root@db03 ~]# systemctl start mysqld
[root@db03 ~]# mysql -uroot -p123qwe

---------------- ------------------- ------------- ---------------- ------------------- -------------

#或者在/etc/my.cnf文件中添加 skip-grant-tables 参数
[root@db03 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables 
#重启mysql并登录
[root@db01 ~]# systemctl restart mysqld
[root@db03 ~]# mysql
mysql> 
mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

#删除skip_grant_tables
[root@db03 ~]# vim /etc/my.cnf 
[root@db03 ~]# systemctl restart mysqld
[root@db03 ~]# mysql -uroot -p123qwe
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql>

MySQL连接方式

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

5.第三方连接工具
#最常用的数据库连接工具是Navicat来连接数据库,这个数据库连接工具的功能非常强大,非常适合用来操作数据库

# 在链接之前,必须创建远程连接用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'Oldboy@666' WITH GRANT OPTION;
			
ALL PRIVILEGES : 所有的权限
*.*				: 正对于所有的库所有的表
root			: 用户名
localhost		: 可以链接的IP(%代表所有的IP)
	
mysql> FLUSH PRIVILEGES;

mysqladmin 命令

1.修改密码,设置密码:password
[root@db03 ~]# mysqladmin -uroot -p旧密码 password '新密码'
 
2.关闭MySQL服务:shutdown
[root@db03 ~]# mysqladmin -uroot -p密码 -S socket文件 shutdown
 
3.库外建库:create
[root@db03 ~]# mysqladmin -uroot -p密码 create egon
[root@db03 ~]# mysql -uroot -p123456 -e 'create database egon'
 
4.库外删除数据库:drop
[root@db03 ~]# mysqladmin -uroot -p123456 drop egon
Do you really want to drop the 'egon' database [y/N] y
Database "egon" dropPEd
 
5.查看配置文件所有的默认参数:VARiables
[root@db03 ~]# mysqladmin -uroot -p123456 variables
[root@db03 ~]# mysqladmin -uroot -p123456 variables | grep server_id
 
6.检测MySQL进程是否存活:ping
[root@db03 ~]# mysqladmin -uroot -p123456 ping
 
7.查看数据库 慢查询,负载信息:status
[root@db03 ~]# 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@db03 ~]# mysqladmin -uroot -p123456 reload
 
9.刷新binLOG日志
[root@db03 ~]# mysqladmin -uroot -p123456 flush-log

脚本宝典总结

以上是脚本宝典为你收集整理的MySQL基本管理全部内容,希望文章能够帮你解决MySQL基本管理所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。