mysql

作者: skymcl | 来源:发表于2018-10-29 10:29 被阅读0次

    常用语句

    https://www.cnblogs.com/tujia/p/6292832.html
    
    increment('balance',$price);累加
    
    

    更新系统

    apt-get update
    apt-get install upgrade
    

    下载PHP,MySQL,nginx

    apt-get install php7.0*//星号代表全部
    

    mysql-server 数据库服务

      执行 apt-get install mysql-server
      出现一般问:缺少依赖(最新系统不会出现)执行 apt-get install -f,然后执行 apt-get install mysql-server
      注意:安装过程会提示输入root用户密码
    

    mysql-client 客户端连接

      执行 apt-get install mysql-client
      安装结束后,可以在控制台中访问数据库 mysql -u root -p
      apt-get install nginx
    

    远程访问数据库最好应该新建用户因为默认root用户只能在本地访问MySQL
    先登录

    ##mysql 远程连接 10061
    

    mysql 未开启远程连接
    开启
    1、cd /etc/mysql/mysql.conf.d
    2、vim mysqld.cnf
    修改 bind-address = 127.0.0.0 => 0.0.0.0
    重启 /etc/init.d/mysql restart

      mysql -u test -p
    

    修改MySQL编码

    vim /etc/mysql/my.cnf
    //添加以下两句
    [mysqld]
    character_set_server=utf8 
    init_connect='SET NAMES utf8'
    //查看编码
    show variables like '%character%';
    //重启服务器
    systemctl restart mysql
    

    创建用户

      CREATE USER 'name'@'localhost' IDENTIFIED BY 'password';
      CREATE USER 'name'@'%' IDENTIFIED BY 'password';
      //localhost表示本地访问,想远程访问改为%
    

    给用户赋予权限

      授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
      grant select,update on testDATABASE.* to name@'localhost' identified by '1234';
      grant all privileges on *.* to test@'localhost' identified by '1234';本地
     grant all privileges on *.* to test@'%' identified by '1234'; 远程
    
      grant all privileges on sky.* to 'test'@'%';
    

    删除用户

      DELETE FROM mysql.user WHERE User='name';
    

    修改密码

      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
    

    更新权限

      flush privileges;
    

    配置nginx

    vim /etc/nginx/sites-available/default
    

    如果使用的是laravel框架 打开cgi

    一,数据库的备份与导入

    **1),数据库的备份**
    1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名例:**mysqldump -u dbadmin -p myblog > /home/zhangy/blog/database_bak/myblog.sql**
    
    2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名例:mysqldump -u dbadmin -p myblog wp_users> /home/zhangy/blog/database_bak/blog_users.sql
    
    3.导出一个数据库结构mysqldump -u dbadmin -p -d --add-drop-table myblog > /home/zhangy/blog/database_bak/blog_struc.sql说明:-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
    

    4.导出数据库一个表结构

    mysqldump -u dbadmin -p -d --add-drop-table myblog  wp_users> /home/zhangy/blog/database_bak/blog_users_struc.sql说明:-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
    

    2),数据库的导入

    1,用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。例如:#/usr/local/mysql/bin/mysql -u root -p *****  myblog   < /home/zhangy/blog/database_bak/myblog.sql
    这种方法,我以前经常现在很少用了,因为很容易产生乱码,因为:
    a,导出数据库时,你如果忘了设置导出字符集的话,在导入的时候,就有可能会出问题.
    b,假如,你导出时设置导出时设置了utf8的编码,但是你又把你的数据库现在的字符集改成了gb2312的.这样又会乱码。
    

    2,用 source 语句例如:

    mysql -u dbadmin -p
    use myblog;
    set names utf8;  #这里的字符集根你的将要导入的数据库的字符集一至。
    source /home/zhangy/blog/database_bak/myblog.sql;
    
    分类: [Linux](http://www.cnblogs.com/hongchenok/category/427182.html)
    

    删除数据库

    
    执行命令drop databases 数据库名;
    
    删除数据库中的表同理
    
    执行命令DROP TABLE tbl_name;  或者是  DROP TABLE IF EXISTS tbl_name;
    

    更新

    update table set feild = value;
    

    配置权限

    进入Mysql,然后输入如下的语句:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    

    上面的%可以改成一个具体的IP地址,这样就只允许这个IP访问了。

    配置监听IP

    上面的配置是不够的。Mysql默认只监听127.0.0.1这个IP地址。所以需要更改/etc/mysql/mysql.conf.d/mysqld.cnf文件。
    里面有一个bind-address=127.0.0.01,改成:

    bind-address=0.0.0.0
    

    重启mysql: service mysql restart
    通过netstat -ant |grep mysql 来查看是否监听的IP地址变化了

    MySQLdump常用
    mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql
    
    
    还原:系统命令行: MySQL -uroot -p123456 <f:\all.sql
    

    常见选项:

    --all-databases, -A: 备份所有数据库
    --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。
    
    --force, -f:即使发现sql错误,仍然继续备份
    --host=host_name, -h host_name:备份主机名,默认为localhost
    --no-data, -d:只导出表结构
    --password[=password], -p[password]:密码
    --port=port_num, -P port_num:制定TCP/IP连接时的端口号
    --quick, -q:快速导出
    --tables:覆盖 --databases or -B选项,后面所跟参数被视作表名
    --user=user_name, -u user_name:用户名
    --xml, -X:导出为xml文件
    
    1.备份全部数据库的数据和结构
    
    mysqldump -uroot -p123456 -A >F:\all.sql
    
    2.备份全部数据库的结构(加 -d 参数)
    
    mysqldump -uroot -p123456 -A-d>F:\all_struct.sql
    
    3.备份全部数据库的数据(加 -t 参数)
    
    mysqldump -uroot -p123456 -A-t>F:\all_data.sql
    
    4.备份单个数据库的数据和结构(,数据库名mydb)
    
    mysqldump -uroot-p123456 mydb>F:\mydb.sql
    
    5.备份单个数据库的结构
    
    mysqldump -uroot -p123456 mydb-d>F:\mydb.sql
    
    6.备份单个数据库的数据
    
    mysqldump -uroot -p123456 mydb-t>F:\mydb.sql
    
    7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)
    
    mysqldump -uroot -p123456 mydb t1 t2>f:\multables.sql
    
    8.一次备份多个数据库
    
    mysqldump -uroot -p123456 --databases db1 db2>f:\muldbs.sql
    
    还原部分分(1)mysql命令行source方法 和 (2)系统命令行方法
    
    1.还原全部数据库:
    
    (1) mysql命令行:mysql>source f:\all.sql
    
    (2) 系统命令行: mysql -uroot -p123456 <f:\all.sql
    
    2.还原单个数据库(需指定数据库)
    
    (1) mysql>use mydb
    
    mysql>source f:\mydb.sql
    
    (2) mysql -uroot -p123456 mydb <f:\mydb.sql
    
    3.还原单个数据库的多个表(需指定数据库)
    
    (1) mysql>use mydb
    
    mysql>source f:\multables.sql
    
    (2) mysql -uroot -p123456 mydb<f:\multables.sql
    
    4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)
    
    (1) mysql命令行:mysql>source f:\muldbs.sql
    
    (2) 系统命令行: mysql -uroot -p123456<f:\muldbs.sql
    

    相关文章

      网友评论

          本文标题:mysql

          本文链接:https://www.haomeiwen.com/subject/mvjtextx.html