zoukankan      html  css  js  c++  java
  • mysql数据库的安装步骤

    mysql数据库的安装步骤

     

    Redhat6.5

    1、准备工作

    卸载使用rpm包安装的mysql-server、mysql软件包
    安装自带的ncurses-devel包
    rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
    ① 解压cmake包
    tar zxf cmake-2.8.6.tar.gz
    [root@localhost cmake-2.8.6]# cd cmake-2.8.6
    ② 安装cmake包
    [root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
    2、源码编译及安装
    ①创建运行用户
    [root@localhost cmake-2.8.6]# groupadd mysql
    [root@localhost cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql
    ②解压mysql包释放到/usr/src目录下并切换到展开后的源码目录
    tar zxf mysql-5.5.22.tar.gz -C /usr/src
    cd /usr/src/mysql-5.5.22/
    ③配置
    可能会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码,配置中将默认的字符集编码设置为utf8并添加其他字符集支持
    [root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
    ----选项含义:
    -DCMAKE_INSTALL_PREFIX:指定将mysql数据库程序安装到某目录
    -DSYSCONFDIR:指定初始化参数文件目录
    -DDEFAULT_CHARSET:指定使用默认的字符集编码,如utf8
    -DDEFAULT_COLLATION:指定默认使用的字符集编码校对规则,utf8_general_ci 是适用于UTF-8字符集编码的通用规则。
    -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
    ④编译并安装 make && make install

    3、安装后的其他调整
    ①对数据库目录进行权限设置
    [root@localhost mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql
    ②建立配置文件
    在mysql源码目录中的support—file文件下,提供了适合不同负载数据库的样本配置文件。如果不确定数据库同学的应用规模,一般选择my-medium.cnf文件即可,该文件能够满足大多数启用的中单应用需求
    根据以下参考内容建立mysql系统的/etc/my.cnf配置文件
    [root@localhost mysql-5.5.22]# rm -rf /etc/my.cnf
    [root@localhost mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
    ③初始化数据库
    为了能够正常使用mysql数据库系统,应以运行用户mysql身份执行初始化监本mysql_intall_db,指定数据库存放目录等。
    [root@localhost mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
    ④设置变量环境
    为了方便在任何目录下使用mysql命令需要在/etc/profile设置环境变量
    [root@localhost mysql-5.5.22]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    [root@localhost mysql-5.5.22]# ./etc/profile 或 source /etc/profile //立即生效
    4、添加系统服务
    若希望添加mysql系统服务,以通过chkconfig进行管理,可以直接使用源码包中提供的服务脚本。找到support-files文件下的mysql。server脚本文件,
    将其复制到/etc/rc.d/init.d目录下,并改名为mysqld,然后再设置执行权限,通过chkconfig命令将其添加为mysqld系统服务。
    [root@localhost mysql-5.5.22]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    [root@localhost mysql-5.5.22]# chmod +x /etc/rc.d/init.d/mysqld
    [root@localhost mysql-5.5.22]# chkconfig --add mysqld
    [root@localhost mysql-5.5.22]# service mysqld start
    查看mysql的运行状态: 端口号:3306
    [root@localhost mysql-5.5.22]# netstat -anpt | grep mysqld
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 21921/mysqld

    二、访问mysql数据库
    1、登录到mysql服务器
    经过安装后的初始化过程,mysql数据库的默认用户名为root密码为空,若以root登录数据库执行以下操作
    mysql -u root -p
    mysql>
    2、执行mysql操作语句:show master logs; 可查看当前数据库访问的日志文件信息
    3、退出mysq可执行quit或exit

    三、MySQL的操作语句:

    1、查看
    ①、查看当前服务器中有哪些库:
    mysql> show databases;
    ②、查看当前使用的库中有哪些表:先使用use语句切换到所使用的库,再查看
    mysql> use mysql;
    Database changed
    mysql> show tables;
    MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录用于存储数据表文件。一个数据表对应3个文件后缀名为 .frm 、.myd和 .myi
    ③、查看表结构:DESCRIBE语句用于显示表的结构需要指定 “库名.表名”
    mysql> desc mysql.user; //查看mysql库的user表的结构

    2、创建及删除库和表
    ①创建新的库
    mysql> create database auth; //创建一个auth库
    Query OK, 1 row affected (0.00 sec)
    ②创建新的表:需要指定表名作为参数,并定义该表所使用的各字段。
    mysql> use auth;
    mysql> create table users (user_name char(16) not null,user_passwd char(48) default '', primary key (user_name));
    //在auth库中创建一个users表并插入字段user_name(不超过16字节且不为空),user_passwd(不超过48字节)默认为空,并把user_name设为主键
    Query OK, 0 rows affected (0.02 sec)
    mysql> show tables;
    +----------------+
    | Tables_in_auth |
    +----------------+
    | users |
    +----------------+
    1 row in set (0.00 sec)
    ③删除表和数据库
    mysql> drop table auth.users; //删除auth库中的users表
    mysql> drop database auth; //删除auth数据库

    3、管理表中的数据记录
    ①插入数据记录:insert into
    mysql> insert into users(user_name,user_passwd) values('lisi',password('1234')); //向auth库中users表插入一条记录,用户名为lisi,密码为1234
    Query OK, 1 row affected (0.01 sec)
    ②查询数据记录:select
    mysql> select * from users; //查询users表中所有(*)内容
    +-----------+-------------------------------------------+
    | user_name | user_passwd |
    +-----------+-------------------------------------------+
    | lisi | *A4B6157319038724E3560894F7F932C8886EBFCF |
    +-----------+-------------------------------------------+
    1 row in set (0.00 sec)
    ③修改数据记录 update
    mysql> update auth.users set user_passwd=password('123.com')where user_name='lisi';
    Query OK, 1 row affected (0.01 sec)
    Rows matched: 1 Changed: 1 Warnings: 0
    ④修改密码:
    用于访问mysql数据库的各种用户信息都保存在mydql库的user表中,可直接修改其中的数据记录
    mysql> update mysql.user set password=password('1234') where user='root';
    Query OK, 4 rows affected (0.00 sec)
    Rows matched: 4 Changed: 4 Warnings: 0
    也可以在linux命令行下使用mysqladmin工具设置密码,验证原密码后可直接将数据库用户密码设置为 '123.com'
    mysql> mysqladmin -u root -p password '123.com'
    Enter password:
    ⑤、删除数据记录:delete
    mysql> delete from auth.users where user_name='lisi';

    4、授权: grant
    ①授予权限:GRANT select ON auth.* TO 'xiaosan'@'localhost' IDENTIFIED BY '123456';

    ②查看权限:show grants 通过FOR子句可指定查看的用户对象
    mysql> show grants for 'xiaosan'@'localhost';
    +----------------------------------------------------------------------------------------------------------------+
    | Grants for xiaosan@localhost |
    +----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'xiaosan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
    | GRANT SELECT ON `auth`.* TO 'xiaosan'@'localhost' |
    +----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    ③撤销权限:revoke
    revoke all ON auth.* FROM 'xiaosan'@'localhost';

    四、数据库的备份与恢复
    三种格式:(一)导出指定库中的部分表:
    mysqldump 【选项】 库名 【表名1】【表名2】... > /备份路径/备份文件名

    (二)导出一个或多个完整库(包括其中所有的表):
    mysqldump 【选项】--databases 库名1 【库名2】 ... > /备份路径/备份文件名

    (三)备份MySQL服务器中所有
    mysqldump 【选项】--all-databases > /备份路径/备份文件名

    1、备份数据库
    (1)执行导出操作
    ①[root@localhost ~]# mysqldump -u root -p mysql user > mysql-user.sql ///将mysql库中的user表导出为mysql-user.sql文件
    Enter password: ///输入root密码

    ②[root@localhost ~]# mysqldump -u root -p --databases auth > auth.sql ///将整个auth库导出为auth.sql文件
    Enter password: ///输入root密码

    ③若需要备份整个mysql服务器中所有库应使用格式(三)当导出数据量较大时,可以添加"--opt"选项以优化执行速度
    例如:mysqldump -u root -p --opt --all-databases > /all-data.sql ///将创建all-data.sql备份文件包含所有库

    (2)查看备份内容
    [root@localhost ~]# grep -v "^--" auth.sql | grep -v "^/" | grep -v "^$" 或使用 egrep -v "^--|^/|^$" auth.sql
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACTER SET utf8 */;
    USE `auth`;
    DROP TABLE IF EXISTS `users`;
    CREATE TABLE `users` (
    `user_name` char(16) NOT NULL,
    `user_passwd` char(48) DEFAULT '',
    PRIMARY KEY (`user_name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    LOCK TABLES `users` WRITE;
    INSERT INTO `users` VALUES ('lisi','*AC241830FFDDC8943AB31CBD47D758E79F7953EA');
    UNLOCK TABLES;

    2、恢复数据库
    ① [root@localhost ~]# mysql -u root -p mysql < mysql-user.sql ///从备份文件mysql-user.sql中将user表导入mysql库中
    Enter password:

    ② [root@localhost ~]# mysql -u root -p < auth.sql ///从备份文件auth.sql恢复auth库
    Enter password:

     
  • 相关阅读:
    源码浅析:MySQL一条insert操作,会写哪些文件?包括UNDO相关的文件吗?
    20201024 --各位码农,节日快乐
    Redis的基本使用
    Oracle 11g与12c的审计详解
    Mac 终端 Tomcat 环境配置过程
    Oracle查询如何才能行转列?-sunziren
    Redis命令大全
    MySQL8.0数据库基础教程(二)-理解&quot;关系&quot;
    mysql 5.7.28 中GROUP BY报错问题 SELECT list is not in GROUP BY clause and contains no
    Flink知识散点
  • 原文地址:https://www.cnblogs.com/fengdejiyixx/p/12391712.html
Copyright © 2011-2022 走看看