zoukankan      html  css  js  c++  java
  • Mysql基本管理知识

    数据库的启动 

    [root@node80 ~]# /etc/init.d/mysqld start     #mysqld是从安装包拷贝的mysql.server
    Starting MySQL. SUCCESS!

    mysql启动基本原理

    /etc/init.d/mysqld是个shell脚本,启动时调用mysqld_safe脚本,最后调用mysqld主程序启动mysql,
    如下,/etc/init.d/mysqld脚本中调用mysqld_safe $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 & 
    [root@node80 ~]# ps -ef | grep mysql | grep -v grep
    root      50043      1  0 00:18 pts/0    00:00:00 /bin/sh /usr/local/mysql5.5.49/bin/mysqld_safe --datadir=/data --pid-file=/data/node80.pid
    mysql     50733  50043  0 00:18 pts/0    00:00:07 /usr/local/mysql5.5.49/bin/mysqld --basedir=/usr/local/mysql5.5.49 --datadir=/data --plugin-dir=/usr/local/mysql5.5.49/lib/plugin --user=mysql --log-error=/data/node80.err --open-files-limit=8192 --pid-file=/data/node80.pid --socket=/usr/local/mysql5.5.49/tmp/mysqld.sock --port=3306

    关闭数据库的方法

    1、mysqladmin -u root -ppassword shutdown  优雅关闭(推荐) (多实例脚本中也使用这个) 
    2、/etc/init.d/mysql stop                             (推荐) 
    3kill -USER2 ‘cat path/pid’带kill的尽量不用

    强制关闭数据库的方法(导致无法启动,数据丢失)

    killall mysqld (实在不行了才尝试)
    pkill mysqld killall -9 mysqld 直到mysqld: no process 
    killed kill -9 pid

    多实例的启动与关闭 (可以写脚本)

    启动 /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null & 
    关闭 ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown


    为管理员设置密码  

    方法一、mysqladmin修改
        mysqladmin -u root password 'password'  #新装时
        mysqladmin -uroot -poldpassword password 'newpassword'  
    方法2、登陆数据库修改  
        mysql>update mysql.user set password=password("newpassword") where user="root"  and host="localhost";    #(必须指定条件及password加密)
        mysql>flush privileges; 
    方法3、密码找回时不能用此种
        mysql>set password=password("newpassword"); 
        mysql>flush privileges; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 

    Mysql登陆方法 mysql    

    mysql -uroot          #刚装完无密码 
    mysql -u root -p     #刚装完无密码。多实例登陆 -S socket指定文件
    标准的dba命令行登陆,如果使用脚本,密码写入脚本,权限应设成700或加密 mysql -u root -ppassword明文方式 明文方式有隐患,在用history可以查到,并且在/root下的history也有记录,所以可以强制linux不记录历史敏感命令#HISCONTROL=ignorespace   (man bash)

    mysql提示符(用于区分生产或测试环境。运维要求,比如查看ip地址确认环境,备份再操作)

    1、prompt  \u@gtms 
    :m:s: 临时的
    2、将上述命令放置在my.cnf的[mysql]下

    找回丢失的root密码步骤

    1、关闭数据库 /etc/init.d/mysql stop 
    2、使用--skip-grant-tables启动mysql,忽略授权登陆验证 mysqld_safe --skip-grant-tables --user=mysql & 
    mysql  =====>登陆时密码为空 mysql>update mysql.user set password=password("newpassword") where user='root'

    多实例找回丢失的root密码步骤

    1、关闭mysql #mysqladmin -uroot -prootabcd -S /data/3306/mysql.sock shutdown
    2、启动时加参数 启动#mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-tables & 
    登陆#mysql -uroot -p -S /data/3306/mysql.sock   /*登陆时空密码
    3、修改密码的方法
    mysql>update mysql.user set password=password("newpassword") where user='root' 
    mysql>flush privileges;

    MySQL帮助命令

    help help 
    help show 获取show命令相关 
    help grant 获取grant命令相关,建立超级管理员时加with grant option; 
    help create table 
    help create database 
    help alter table 
    help create index
    .......

     sq语言的分类

    1、*数据查询语言DQL    select类
    2、*数据库操作语言DML  select  insert update delete类
    3、事物处理语言TPL     确保被DML语句影响的表的所有行及时得到更新。包括begin transaction commit和rollback
    4、*数据控制语言DCL    grant
    evoke、commit,rollback
    5、*数据定义语言DDL    create、drop、alter
    6、指针控制语言        像declare cursor、fetch into和update where current用户对一个或多个表单独行的操作
  • 相关阅读:
    C#实现按键精灵的'找图' '找色' '找字'的功能
    Amazon SES SPF和DKIM设置教程
    你应该知道的最好Webmail邮件客户端,
    8款世界级Webmail工具推荐
    AWS邮件通知服务:实时监控邮件状态
    XenServer:使用XenCenter开设VPS(多图完整版)
    Thinkpad机器BIOS下清除安全芯片和指纹数据的方法
    在ASP.NET Web Application中通过SOAP协议调用Bing搜索服务
    怎么申请 bing api key
    linux挂载硬盘失败,报错!
  • 原文地址:https://www.cnblogs.com/gtms/p/6562451.html
Copyright © 2011-2022 走看看