MySQL数据库基本管理
2022/1/8 2:03:35
本文主要是介绍MySQL数据库基本管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MySQL数据库基本管理
1、设置Mysql密码
初始状态下,管理员root的密码为空或者是随机生成的,而且只允许本机登录。一般情况下,我们安装好Mysql之后的第一件事就是修改默认的密码。
- 获取初始密码
[root@m01 ~]# grep 'temporary password' /var/log/mysqld.log 2022-01-07T13:03:12.565144Z 1 [Note] A temporary password is generated for root@localhost: R8JQ<D:,t9+d localhost: R8JQ<D:,t9+d(初始密码)
- 修改密码
# 方式一 mysqladmin 在mysql数据库外面修改数据库密码,会警告,不用管 [root@m01 ~]# mysqladmin -uroot -p'R8JQ<D:,t9+d' password "UPythonFish@666" mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. # 方式二 通过初始密码进入mysql数据后修改密码 mysql> alter user root@localhost identified by 'MySQL@666'; Query OK, 0 rows affected (0.00 sec) 刷新权限 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
2、MySQL连接工具与方式
- Mysql的连接方式和工具有很多种
2.1、MySQL自带的连接命令工具
- Mysql自带的连接工具叫
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. 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来连接数据库,这个数据库连接工具的功能非常强大,非常适合用来操作数据库。
- 在链接之前,必须创建远程连接用户
# 设置远程登录权限和登录密码 mysql> grant all privileges on *.* to root@'%' identified by 'UPythonFish@666'; Query OK, 0 rows affected, 1 warning (0.00 sec) ALL PRIVILEGES : 所有的权限 *.* : 正对于所有的库所有的表 root : 用户名 localhost : 可以链接的IP(%代表所有的IP)
3、MySQL配置文件
- MySQL配置文件的作用是配置MySQL,使MySQL按照我们指定的方式健康运行。
- 注:配置文件中的注释可以有中文,但是配置项中不能出现中文。
Linux中配置文件
Windows中配置文件
1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效 [mysqld] ;skip-grant-tables port=3306 character_set_server=utf8 default-storage-engine=innodb innodb_file_per_table=1 #解压的目录 basedir=E:\mysql-5.7.19-winx64 #data目录 datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据 2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效 [client] port=3306 default-character-set=utf8 user=root password=123 3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置 [mysql] ;port=3306 ;default-character-set=utf8 user=root password=4573 # !!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
4、统一字符集编码
在数据库中,统一字符集编码的必要性非常大,当我们使用统一的字符集编码时数据库查出来的数据才不会错。
- 修改Linux系统字符集编码
#1.命令行临时修改 : LANG=us_EN.UTF-8 LANG=zh_CN.UTF-8 临时修改报错命令为应文 : LANG=us_EN.UTF-8 #2.修改系统字符集 Centos6 永久修改:[root@localhost ~]# vim /etc/sysconfig/i18n Centos7 永久修改:[root@localhost ~]# vim /etc/locale.conf
- 配置文件指定
#1.修改配置文件 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 #2. 重启服务 [root@m01 ~]# systemctl restart mysqld #3. 查看修改结果: mysql> show variables like '%char%'; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+ 校验规则: utf8_general_ci 1)ci:大小写不敏感 2)cs或bin:大小写敏感 #一个表里面不可能出现同名不同大小写的字段 #查看校验规则 mysql> show collation; +--------------------------+----------+-----+---------+----------+---------+ | Collation | Charset | Id | Default | Compiled | Sortlen | +--------------------------+----------+-----+---------+----------+---------+ | big5_chinese_ci | big5 | 1 | Yes | Yes | 1 | | big5_bin | big5 | 84 | | Yes | 1 | | dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 | | dec8_bin | dec8 | 69 | | Yes | 1 | ......... utf8和utf8mb4之间的区别? utf8不支持emoji表情而utf8mb4支持。
- 通过SQL语句指定字符集编码
# 1、创建数据库时指定字符集和校验规则 create database db1 charset utf8mb4 collate utf8mb4_general_ci;
mysqladmin命令
1.修改密码,设置密码:password [root@db01 ~]# mysqladmin -uroot -p旧密码 password '新密码' 2.关闭MySQL服务:shutdown [root@db01 ~]# mysqladmin -uroot -p密码 -S socket文件 shutdown 3.库外建库:create [root@db01 ~]# mysqladmin -uroot -p密码 create bbs [root@db01 ~]# mysql -uroot -p123456 -e 'create database bbs' 4.库外删除数据库:drop [root@db01 ~]# mysqladmin -uroot -p123456 drop bbs Do you really want to drop the 'bbs' database [y/N] y Database "bbs" 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数据库基本管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程