Linux下使用MySQL教程

是最流行的关系型数据库管理系统之一,属于 Oracle 旗下产品

安装启动操作

1.安装mysql命令 :$ sudo apt-get install -y mysql-server
2.查看mysql的版本命令(注意-V是大写,不然会出现如下错误):$ mysql -V
3.启动mysql命令(关闭,重启等只需将start换成stop,restart等即可):$sudo service mysql start
4.登录mysql命令为:$ mysql -u用户名 -p密码
5.连接远程数据库:$ mysql -h <host> -P <port> -u<username> -p<password>

数据库操作

1.查看数据库:> show databases; (注意分号“;”不要落下)
2.新建一个数据库命令:> create database 数据库名称;
删除一个数据库命令:> drop database 数据库名称;
3.使用某个数据库:> use 数据库名称;

表操作

1.查看表命令:> show tables;
2.建立一个新表:> create table 表名 (字段参数); 或 >create table if not exists 表名(字段参数);
删除一个旧表:> drop table 表名; 或 >drop table if exists 表名;
3.查看表结构:> desc 表名称; 或 >show columns from 表名称;
4.对表数据的操作:
增:>insert into 表名称 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......);
删:>delete from 表名称 where 表达式;

建立一个新表:> create table 表名 (字段参数); 或 >create table if not exists 表名(字段参数)

删除一个旧表:>drop table 表名; 或 >drop table if exists 表名

改:>update 表名称 set 字段名=“新值” where 表达式;
查:>select 字段名1,字段名2,字段名3..... from 表名称;
5.增加字段:>alter table 表名称 add 字段名 数据类型 其它; (其它包括默认初始值的设定等等)
6.删除字段:>alter table 表名称 drop 字段名;

用户相关操作

注:以下命令均需先以root身份登录mysql:mysql -uroot -p

show databases;  显示此用户下的数据库;

use 数据库名;       切换数据库

show tables;    显示该数据库下所有表

desc users;   显示users这个表的详细信息

1.添加新用户
(1)创建新用户:> insert into mysql.user(Host,User,Password) values("localhost","user1",password("password1"));


(2)为用户分配权限:
设置用户可以在本地访问mysql:grant all privileges on *.* to username@localhost identified by "password" ;
设置用户只能访问指定数据库:grant all privileges on 数据库名.* to username@localhost identified by "password" ;
(3)刷新系统权限表:>flush privileges;
2.查看MySql当前所有的用户:>SELECT DISTINCT User FROM mysql.user;
3.删除用户及其数据字典中包含的数据:>drop user 'xbb'@'localhost';

实例:

mysql使用手册

1、mysql登录

1.1 远程登陆mysql

mysql -h ip -u root -p 密码

1.2 本地登陆mysql

mysql -u root -p 密码

2、为数据库配置远程连接权限

采用授权法

例如:以用户名:root 密码:888888从任何主机连接到mysql服务器

先在服务器上用root用户登录:

mysql –uroot –p

出现命令行提示符:

mysql>

输入:

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’IDENTIFIED BY ‘1qaz2wsx’ WITH GRANT OPTION;

然后使配置生效:

mysql>FLUSH PRIVILEGES;

mysql>exit;

如果仅仅允许用户root 从ip为192.168.1.6的主机连接到mysql服务器,并使用888888作为密码

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.6’ IDENTIFIED BY ‘888888’ WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES ;

mysql>exit;

3、用户使用权限

mysql> use mysql;

Database changed

mysql> select host, user, password from user;

+———–+———+——————————————-+

| host      | user    | password                                  |

+———–+———+——————————————-+

| localhost | root    | *535CC5FDC76618DED475584E5F5957B9F7E63D4B |

| 127.0.0.1 | root    | *7C057B0B526E12B8D3AFBD4B9C187CA3E62DA280 |

| ::1       | root    | *7C057B0B526E12B8D3AFBD4B9C187CA3E62DA280 |

| %         | phptest | *523DF7DC12DF59EC98AD12A7125000A5B4E63721 |

| %         | root    |                                           |

| %         | mysqld  | *83D34C89B8E0F100D54C6D9276D357DB43E8779F |

| %         | server  | *866D5A029D62EC05ACC4584CE50F1CD2F50E0E82 |

+———–+———+——————————————-+

7 rows in set (0.00 sec)

4、用户登陆及密码更改

#修改当前登录用户密码:

mysql> SET PASSWORD = PASSWORD(‘1qaz2wsx’);

mysql> exit;

 

#添加ydlm用户查询、插入、更新、删除的权限:

grant select,insert,update,delete on *.* to test@”%” identified by “123456“;

grant select,insert,delete,update,create,drop on *.* to test@”%” identified by “123456”;

flush privileges;

5、限制root用户远程登陆

mysql> delete from user where user=”root” and host=”%”;

mysql> flush privileges;

mysql> exit;

#启用root用户远程登陆

mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’IDENTIFIED BY ‘1qaz2wsx’ WITH GRANT OPTION;

然后使配置生效:

mysql>FLUSH PRIVILEGES;

mysql>exit;

6、删除某用户

drop user 用户名@’%’;

drop user ydlm@’%’;

DELETE FROM user WHERE user=’test’;

或者

drop user test@”%”;

delete from user Where User=’test’ and Host=’%’; #指定用户和主机名

7、数据库导入

source /opt/test.dump_20171124_112640.sql

8、数据库的备份与恢复

— 备份数据库

— /var/lib/mysql

— 备份

— mysqldump -u 用户名 -p [密码]  [选项]  [数据库名]   [表名]  > /备份路径/备份文件名 ,选项有 –all-databases 表示备份所有数据库

mysqldump -u root -p studb > /studb.sql

mysqldump -uroot -p –all-databases >/studb.sql   #不建议用,恢复麻烦

— 还原数据库

mysql -u root -p studb < /studb.sql

9、mysql数据库使用

mysql> show databases;   查看数据库列表信息

mysql> use mysql;        USE  数据库名

mysql> show tables;

— 创建新的数据库

— CREATE DATABASE 数据库名

— 创建新的数据表

— CREATE TABLE 表名 (字段定义……)

— 删除指定的数据表

— DROP TABLE [数据库名.]表名

— 删除指定的数据库

— DROP DATABASE 数据库名

— 建表:

— create  table  student (表名称是student

— studentName  varchar(30)  not  null,   字段studentName

— studentId   int  not  null,                 字段studentId

— studentAge  int  not  null,                字段studentAge

— loginPass  varchar(10) 字段loginPass

— );

10、重置mysql数据库root用户密码

1、修改MySQL的登录设置:

vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip-name-resolve

skip-grant-tables

2、重新启动mysqld:

/etc/init.d/mysqld restart

3、登录并修改MySQL的root密码:

/usr/bin/mysql

USE mysql ;

UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’

flush privileges ;

Quit;

4、再把配置文件修改回来,再重启服务

11、Mysql备份脚本

#!/bin/sh

# File: /root/mysql_dump/mysql_back.sh

# Database info

DB_NAME=”test”

DB_USER=”root”

DB_PASS=”123456″

# Others vars

# whereis mysqldump

# IS ` but not ‘

BIN_DIR=”/usr/bin”

BCK_DIR=”/root/mysql_dump/data”

DATE=`date +%Y%m%d_%H%M%S`

# TODO DATABASE BAK AND DELETE 15 DAYS AGO BAKFILES

mkdir -p $BCK_DIR

$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS $DB_NAME \

 > $BCK_DIR/$DB_NAME.dump_$DATE.sql

find $BCK_DIR -mtime +15 -name “test.dump_*” -exec rm -rf {} \;