常用的MySQL操作

常用的MySQL操作

1. 安装MySQL

① 下载软件包

② 初始化

解压

# tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz

判断是否有/usr/local/mysql目录,并将目录改为或设为/usr/local/mysql_old

# [ -d /usr/local/mysql ]  && mv /usr/local/mysql /usr/local/mysql_old

移动MySQL文件到/usr/local/mysql下

# mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql

建立MySQL用户

# useradd -s /sbin/nologin mysql

# cd /usr/local/mysql

创建datadir,数据库文件会放到这里

# mkdir -p /data/mysql

更改权限

# chown -R mysql:mysql /data/mysql

安装perl-Module-Install

# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

此命令执行后你会看到两个OK,并且在/data/mysql目录下生成几个文件和目录然后用echo $?进行验证

③  配置MySQL

复制配置文件到 /etc/my.cnf下

# cp support-files/my-default.cnf /etc/my.cnf

修改配置文件内容如下

 

 

复制启动脚本文件并修改其属性

# cp support-files/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

修改启动脚本

# vim /etc/init.d/mysqld

 

上图中为:datadir=/data/mysql

mysqld服务加入到系统服务列表中

# chkconfig --add mysqld

使其开机就启动

# chkconfig mysqld on

启动服务

 

检查结果是否大于两行

[root@localhost ~]# ps aux |grep mysqld

 

看看有没有监听33306接口

没有netstat就使用命令:

[root@localhost ~]# yum install -y net-tools

[root@localhost ~]# netstat -ntpl

 

  1. 更改MySQL数据库root的密码

首次进入数据库是不需要密码的,如图所示:

[root@localhost ~]#/usr/local/mysql/bin/mysql -uroot

 

退出时直接输入quit或者exit即可。使用绝对路径这样不方便。但是单独输入一个mysql命令是不行的,因为/u sr/local/mysql/bin不在PATH这个环境变量里。如何把它加入环境变量PATH中呢?方法如下:

[root@localhost ~]# PATH=$PATH:/usr/local/mysql/bin

但重启Linux后还会失效,所以需要让它开机加载,如下所示:

[root@localhost ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

[root@localhost ~]# source /etc/profile

root@localhost ~]# mysql -uroot

 

上图中的命令中的-u的含义。它用来指定要登录的用户,后面有无空格均可。root用户是MySQL自带的管理员账户,默认是没有密码的,那么如何给root用户设定密码呢?操作方法如下:

[root@localhost ~]# mysqladmin -uroot password '123456'

 

这样就给mysqlroot账户设置了密码,密码为123456,注意在生产环境中千万不要这么简单的密码。在执行命令过程中它会返回一条警告信息,意思是在命令行下面暴露了密码。这样不安全。在执行一次上面的命令。如下所示:

[root@localhost ~]# mysql -root

 

 

 

 

这里报错了,它提示我们root账号是需要密码登录的。接下来重新输入密码登录,如下所示:

[root@localhost ~]# mysql -uroot -p '123456'

 

 

 

 

输入密码时需要加-p选项,后面可以直接跟密码。-p选项后面不可以有空格,密码可以不加单引号。当然,-p选项后面也可以不加密码,已和用户交互的方式输入密码,如下所示:

 

 

 

 

  2.连接数据库

你可以使用命令mysql -u root -p连接数据库,但连接的只是本地数据库需要连接网络中某一个主机上的mysql。如下所示:

 

  3.MySQL基本操作的常用命令

在日常工作中,难免会遇到一些与MySQL相关的操作,比如建库、建表、查询MySQL状态等。

1) 查询当前库

       

     注意 mysql命令的结尾处需要加一个分号。

2) 查询某个库的表

 首先需要切换到某个库里,如下所示:

 

在切换库的时候,它提示这个操作会把当前库里的所有表的字段全部读一遍,你可以在启动MySQL的时候加上-A选项关闭这个特性(即使有这个特性倒也不影响什么,你可以忽略它。)然后再把表列出来,如下所示:

 

 

 

 

3) 查看某个表的全部字段

查看表的全部字段的命令如下:

 

 

 

 

另外,也可以使用下面的这条命令,显示的信息更详细,而且还可以把建表语句全部列出来,如下所示;

 

 

 

 

  这条命令后面加了一个\G,目的是让列出来的结果竖排显示,这样看起来更清晰;如果不加,则很乱。

4)  查看当前是哪个用户

查看当前用户的命令如下:

 

 

 

 

 

5) 查看当前所使用的数据库

   查看当前数据库的命令如下:

  

 

 

 

6)  创建一个新库

   新建一个库的命令如下:

 

 

 

 

7) 新建一个表的命令如下:

 

 

 

 

   注意,这里的字段名idname需要用反引号括起来。

8) 查看当前数据库的版本

查看MySQL版本的命令如下:

 

 

 

 

9) 查看MySQL的当前状态

查看MySQL当前状态的命令如下:

 

 

 

 

10) 查看MySQL的参数

 查看MySQL各参数的命令如下:

 

 

 

 

11) 修改MySQL的参数

举例来说,修改参数max_connect_errors的操作方法如下:

 

 

 

 

MySQL命令行,符号%类似于shell下的*,表示统配。使用命令set global可以临时修改某些数据,但是重启MySQL服务后这些修改会失效。所以,如果你想让这些修改恒久生效,就要在配置文件my.cnf中定义。

12)  查看当前MySQL服务器的队列

查看服务器队列在日常的管理工作中最为频繁。因为使用它可以查看当前MySQL在干什么,也可以发现是否有锁表,如下所示:

 

 

 

 

13)  创建一个普通用户并授权

    授权命令如下:

 

 

 

 

其中,all表示所有权限(如读、写、查询、删除等操作);有两个*。前者表示所有的数据库,后者表示所有的表;identifide by 后面跟密码,用单引号括起来。这里的user1特指localhost上的user1。如果是给网络其他机器上的某个用户授权,则要执行如下命令:

 

 

 

 

其中,用户和主机的ip之间有一个符号@。另外,命令中主机ip可以用%替代,表示所有主机。

  4.常用的SQL语句

1) 查询语句

第一种形式

 

 

 

 

其中,mysql.user表示MySQL库的user表,count*)表示表中共有多少行。

第二种形式

 

 

 

 

它表示查询MySQL库的db表中的所有数据。当然也可以查询单个字段或者多个字段,如下所示:

 

 

 

 

同样,在查询语句中也可以使用万能匹配符%,如下所示:

 

 

 

 

2) 插入一行

插入操作在MySQL中也很普遍,如下所示:

 

 

 

 

3) 更改表的某一行

MySQL表里存放的数据支持更改某个字段,如下所示:

 

 

 

 

4) 清空某个表的数据

有时我们不希望删除表,而只是想清除某个表的数据,如下所示:

 mysql> drop table db1.t1;

Query OK, 0 rows affected (0.00 sec)

5) 如果某个表不需要了,可以直接删除,如下所示:

 

 

 

 

 

6) 删除数据库

  表可以删除,当然数据库也可以删除,如下所示:

 

 

 

 

  1. MySQL数据库的备份与恢复

1) MySQL备份

备份MySQL要使用mysqldump命令,具体用法如下:

[root@localhost ~]# mysqldump -uroot -p mysql >/tmp/mysql.sql

2) MySQL的恢复和备份相反,如下所示:

[root@localhost ~]# mysqldump -uroot -p mysql </tmp/mysql.sql

 

posted on 2021-01-29 11:35  程序猿-拾柒  阅读(146)  评论(0)    收藏  举报

导航