【Linux】Mysql数据库安装以及基本维护

实验环境

使用系统为CentOS6.5 x64

mysql版本为mysql-5.5.24.tar.gz


配置步骤

安装编译工具以及mysql所需软件包

[root@CentOS-3 ~]# yum install -y \

> gcc \

> gcc-c++ \

> cmake \

> make \

> ncurses-devel


创建一个mysql账号,结合“-s”选项选择登录shell

[root@CentOS-3 ~]# useradd -s /sbin/nologin mysql

[root@CentOS-3 ~]# mkdir /usr/local/mysql   //创建mysql目录


解压mysql到安装目录

[root@CentOS-3 ~]# tar xf /mnt/mysql-5.5.24.tar.gz -C /usr/local/mysql/

[root@CentOS-3 ~]# cd /usr/local/mysql/mysql-5.5.24/   //切换到源码目录

[root@CentOS-3 ~]# cmake  \              //使用cmake定义参数

>DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

>DMYSQL_DATADIR=/home/mysql/ \

>DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

>DWITH_MYISAM_STORAGE_ENGINE=1 \

>DWITH_INNOBASE_STORAGE_ENGINE=1 \

>DWITH_ARCHIVE_STORAGE_ENGINE=1 \

>DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

>DENABLED_LOCAL_INFILE=1 \

>DDEFAULT_CHARSET=utf8 \

>DDEFAULT_COLLATION=utf8_general_ci \

>DEXTRA_CHARSETS=all \

>DWITH_SSL=system \

>DMYSQL_TCP_PORT=3306 \

>DENABLE_DOWNLOADS=1 \

>DWITH_SSL=bundled

[root@CentOS-3 mysql-5.5.24]# make && make install  //编译并安装

修改mysql目录下所有文件属主和属组

[root@CentOS-3 mysql-5.5.24]# chown -R mysql.mysql /usr/local/mysql

添加环境变量

[root@CentOS-3 mysql-5.5.24]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

[root@CentOS-3 mysql-5.5.24]# source /etc/profile   //初始化环境变量,使其立即生效

建立配置文件

[root@CentOS-3 mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf 

cp:是否覆盖"/etc/my.cnf"? yes


将mysql添加到service管理

[root@CentOS-3 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld

[root@CentOS-3 mysql-5.5.24]# chmod +x /etc/init.d/mysqld  //添加执行权限

添加到chkconfig中,设置235级别自动启动

[root@CentOS-3 mysql-5.5.24]# chkconfig --add mysqld

[root@CentOS-3 mysql-5.5.24]# chkconfig --level 235 mysqld on

[root@CentOS-3 mysql-5.5.24]# ln -s /var/lib/mysql/mysql.sock  /home/mysql/mysql.sock  //创建链接文件


编辑/etc/init.d/mysqld脚本,搜索basedir添加如下内容

[root@CentOS-3 ~]# vi /etc/init.d/mysqld

wKiom1abqIiwgfdMAAAi2ADdGKo835.png

初始化数据库

[root@CentOS-3 ~]# /usr/local/mysql/scripts/mysql_install_db \

> --user=mysql \             //指定用户

> --ldata=/var/lib/mysql \    

> --basedir=/usr/local/mysql \  //基本目录

> --datadir=/home/mysql        //数据目录


启动mysql数据库

[root@CentOS-3 ~]# service mysqld start

Starting MySQL.....                                        [确定]

[root@CentOS-3 ~]#


[root@CentOS-3 ~]# netstat -anpt | grep mysqld        //mysql监听在TCP 3306端口

tcp        0      0 0.0.0.0:3306                0.0.0.0:*            LISTEN  13447/mysqld




[root@CentOS-3 ~]# mysql -u root     //登录数据库,使用“-u”指定用户名

wKiom1abqrmCfyxQAAEYUJUgRwA388.png


使用"SHOW DATABASES;"列出所有库

wKiom1abq9DzolzMAAA2ZE2W52k322.png


使用"USE mysql;"切换到mysql库中

mysql> USE mysql;

Database changed

mysql>

使用"SHOW TABLES;"列出库中的表

wKioL1abrSXTXbx1AAAmbnvDQWk982.png


使用"DESCRIBE user;"命令查看user表的结构

wKiom1abrdrQUjHLAABcVQ4u2Rk098.png

使用格式“CREATE DATABASE 库名;”创建一个库

wKioL1abrrGQCpfnAAAcrsQouKc780.png


创建表的格式为:

CREATE TABLE 表名 (字段1    类型,字段2    类型,PRIMARY KEY(主键名));

wKioL1absMfQt6U4AACn6tRhUEo763.png

在abc库中创建了一个名为users的表,NOT NULL表示不可以为空,主键为user_name


插入数据格式为:

INSERT INTO 表名(字段1,字段2) VALUES(字段1的值,字段2的值);

wKiom1absbyDkYGSAAArN4RKLhE408.png插入一行数据,用户名为zhangsan密码为abc123


查询表数据格式为:

SELECT 字段1,字段2    FROM 表名 WHERE 条件表达式


如果要显示所有字段可以用通配符“*”,例如

wKioL1abs13yLrDSAABO4-i5_OI652.png显示abc库中users表的所有内容


显示abc库中users表里user_name和user_passwd字段名为zhangsan的数据

wKiom1abs9fCzWkhAAA-CA7Tdvw099.png


修改表格式为:

UPDATE 表名 SET 字段名1=字段值1   WHERE 条件表达式


例如将“lisi”修改为“lisi456”

wKiom1abtSmibnlTAAAvzxT-iGY580.png


看一下修改后的结果

wKiom1abtdyx2BPYAACKEQw-VAI602.png


删除表中的数据格式为:

DELETE FROM 表名 WHERE 条件表达式


例如,将abc库中users表内的tom用户数据删掉

wKioL1abtynw8q0YAAD2rfFbWS4723.png

删除表的格式为:

DROP TABLES 库名.表名;


例如将abc库中的users表删除

wKiom1abt-DCSQXWAADwmvbGbKI986.png

删除库的格式为:

DROP DATABASE 库名;


例如删除abc库

wKioL1abuLDQczNMAAEbMHVMH2M470.png


数据库用户授权

GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY '密码' ]


权限列表:可以设置为select,insert,update如果想使用所有权限可以使用all

库名.表名:可以支持通配符*.*表示所有库所有表

用户名@地址:地址可以是域名或IP地址,可以使用%表示一个网段或所有地址:192.168.1.%,%(表示所有地址)

IDENTIFIED BY:此部分可以省略不写,不写则密码为空


例如为tom用户授权对所有库所有表拥有查询权限

wKiom1abu9DRZfVHAAAn0euwcu4141.png


查看权限格式:

SHOW GRANTS FOR 用户名@来源地址


查看tom用户权限

wKioL1abvO3yWmn-AAC7exYSKLg453.png

撤销权限格式:

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址


撤销tom的权限

wKioL1abvoDwnU0aAAAeJLhTnnc681.png


刷新授权信息

wKioL1abvraSQsZmAAAU4y6g_3U880.png


为root用户设置密码格式:

mysqladmin -u root -p password 新密码

wKiom1abwE6DsthEAACXzzg36xM279.png

配置密码后登录就要结合-p选项验证密码了

wKioL1abwPDS3iZCAAFjdtOOdaQ188.png


数据库的备份与恢复


备份库中的部分表格式:

mysqldump [选项] 库名 [表名1] [表名2] > /PATH


例如将数据库中的abc库中的users表进行备份

wKiom1abwx6yQccSAAC125NN7QM428.png-u用来指定用户名,-p用来进行密码验证


备份数据库中的一个或多个库格式:

mysqldump [选项] --databases 库名1 [库名2] > /PATH


例如将数据库中的abc库进行备份

wKiom1abw_LwL3hIAADJ05ZTOWU431.png


恢复数据库格式:

mysql [选项] [库名] [表名] < /PATH


例如删除数据库中的abc库,然后在通过备份恢复数据库

wKioL1abxnLyTJwSAAAVw4T2_7U740.png

wKiom1abxjqhd1Q7AAAw-PYsdlU364.png

删除成功已经没有abc库了


恢复数据

wKiom1abxwbBSRloAAAbTCWd8_g521.png


可以看出abc库已经恢复回来了

wKioL1abx5Cyt5a2AAC6qlo1FT8632.png



以上就是Mysql数据库的安装以及基本的 增 删 改 查 备份 还原,需要注意的是书写的时候注意格式后面都是有封号的(是英文的封号哦!),命令是不区分大小写的!

你可能感兴趣的:(linux,mysql,基本维护)