day01 mysql knowledge to install user authorization configuration service password from the character set

day01 mysql
    
A. Recognize mysql
    Relational Database:
        The most popular relational database management system to support large databases, processing millions of records
        Relational: oracle, sql_server, mysql: sql statement General; requires table structure
        Non-relational: mongodb, redis, memcache; key-value form, without the table structure
    Application Environment: 
        lamp, LNMP
    What is mysql: 
        Based on a written socket c / s architecture software
    Common terms:
        # Server database server (for higher memory requirements)
        # Database management systems such as: mysql open source software oracle charge fees sql_server
        # Database storage of data warehouse
        table
        Record # row of data
        Field
        # Symbol recorded data describing things called data through digitized into the computer
        # Twice redundant data storage, reduced performance, but improves safety
        The primary key is the only #
        Two foreign keys for association tables #
        # Indexes speed up queries, is a data structure
        # Referential integrity relationship requirements are not allowed in reference to an entity that does not exist, purpose: to maintain data consistency
 
Two .mysql installation (window Version)
    server side:
    1. official website to download https://dev.mysql.com/downloads/mysql/
        Version: 5.7.28 64-bit software, mysql5.5 - mysql5.7 grammar almost all the same
    2. Extract
        Can be installed in the specified directory: D: \ mysql-5.7.28-winx64, directly specify the D drive, unzip the installation directory can be automatically created
    3. Add the environment variable
        The installation bin directory under the directory path, D: \ \ bin added to the system environment variable mysql-5.7.28-winx64
    4. Initialize  
        mysqld --initialize-insecure # (initialize initialization; insecurity in the insecure)  
        Ordinary users do not have permission? Right-click the bottom left button, select "window powershell (administrator)", go in cmd administrator mode
            Generating directory data directory in the installation, following library catalog
                mysql: Authorized library
                performance_schema (performance architecture :)
                sys: system libraries
                test: test library, the library has some initialization
    5. Switch Service
        mysqld: command line will live ram, explained that it had opened the Task Manager can see the mysql process.
   
     client side:
    1. Connect mysql server, the first connection without a password, password: When prompted, enter into direct
        # mysql -uroot -p
    2. Check the database:
        > show databases;
    3. Create a database:
        > create database db1;
    4. Check the version information databases, etc. (port number, character set)
        >  \s;
    5. Exit Database
        > exit
    6. administrators to view mysql process
        # Tasklist # View windows all processes
        # tasklist | findstr mysql        (task 任务)
    7.管理员杀掉mysql进程, 根据上面命令找的PID
        # taskkill /F /PID 366824
    
    mysql服务: (window上添加mysqld服务)
    1.管理员安装mysqld服务
        # mysqld --install
    2.管理员卸载mysqld服务
        # mysqld --remove
    3.管理mysqld服务
        方式一.点来点去
            可以在window"服务"里,找到mysqld,启动,停止,暂停,重启
        方式二.管理员在命令行操作
            # net start mysql
            # net stop mysql
    
  mysqld设置密码:
    1.查看当前登录的用户账号
        > select user();    #mysql 的函数user()
    2.设置密码:
        方式一:命令行设置, 或修改密码, 123456暴露了不安全, 所以一般不用这种方法,而且设置的时候也会提示warning insecure
            # mysqladmin -uroot -p password "123456"        //不暴露老密码: 当第一次设置时,提示password直接回车, //若之前有密码,当提示password时,输入原密码
            # mysqladmin -uroot -p"123456" password "123"   //暴露老密码: -p后面没有空格,否则报错,这两个password后面的是新密码 
        方式二:sql语句设置
            > update mysql.user set authentication_string=password('123') where User='root';       #注意修改user表后, 不会立即生效(authentication 身份验证)
            > flush privileges;                                                                    #刷新权限,使user表立刻生效(不然,只能等重启mysql时才会生效)
            #用password()函数给mysql.user表的某个用户所在记录的'身份验证字段'赋值新的密码字符串
    3.忘记密码?
        root用户可跳过授权登录服务器, 然后重置密码即可:
        步骤一:root用户登录"以跳过授权表的方式开启的mysql服务器",先停掉之前的"以授权方式登录的mysql服务器"
            # net stop mysql
            跳过授权方式一:
                命令行启动服务时加参数,如下
                # mysqld --skip-grant-tables
            跳过授权方式二:
                写入配置文件: my.ini的 [mysqld] 下追加一行: skip-grant-tables
                然后启动服务: 注意使用这个方式的时候, 修改完密码,一定要把配置文件中的这个参数去掉
            > mysql -uroot -p
        步骤二: 用sql语句设置密码,命令行的设置密码此时无法使用
            > update mysql.user set authentication_string=password('123') where User='root';    #authentication_string字段和之前mysql版本不一样, 需注意,老的是password关键字
            > flush privileges;
        步骤三:退出"跳过授权方式的mysqld", 重新开启mysqld服务
            > tasklist | findstr mysql
            > taskkill /F /PID 382352
            # net start mysql
    
    统一字符编码
        1.查看默认字符集,
            > \s;
            Server characterset:    latin1        //默认字符集部分
            Db     characterset:    latin1
            Client characterset:    gbk
            Conn.  characterset:    gbk
        2.创建mysql的配置文件, 在安装目录下创建 my.ini
            [mysqld]
            # 设置mysql的安装目录
            basedir=D:\mysql-5.7.28-winx64
            # 设置mysql数据库的数据的存放目录,必须是data
            datadir=D:\mysql-5.7.28-winx64\data
            sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES      #(strict 强制,严格)    
            # mysql端口
            port=3306
            # 字符集
            [mysqld]
            character-set-server=utf8
            collation-server=utf8_general_ci
            [client]
            default-character-set=utf8
            [mysql]
            default-character-set=utf8
        3.重启mysql服务: 加载配置文件
        4.连接mysql,查看字符集
            > \s;
            Server characterset:    utf8
            Db     characterset:    utf8
            Client characterset:    utf8
            Conn.  characterset:    utf8
 
    创建mysql用户和用户授权
    1.创建用户名和设置密码
         create user 'bajie'@'192.168.150.%' identified by '';    //% 号为通配符,代表.* ,  _号代表. , by后面''填写密码, 新用户默认无任何权限(identified 鉴定)
    2.删除用户
        drop user 'bajie'@'192.168.150.%';
    3.修改用户名
        rename user 'bajie'@'192.168.150.%' to 'bajie'@'%';        //可以修改用户名和登录的地址 
    4.修改用户密码
        set password for 'bajie'@'%'=password('123');   
    5.给用户授权
        grant select,insert,update on db1.* to 'wukong'@'%';
        grant all privileges on *.* to 'wukong'@'%';               //授所有权限, 但不包括授权的权限
    6.取消用户权限
        revoke all privileges on *.* from 'wukong'@'%';
    7.查看某个用户的授权
        show grants for 'wukong'@'%';
    
      建库建表
> create database db1;
> create table db1.t1(id int,name char(10)); 
> create table  db1.t1(id int,name char(10)) default charset='utf8';  //指定编码创建表
> show databases;
> show tables;
> desc db1.t1;                                                    //查看表结构
> insert into db1.t1(id,name) values(1,'tongxue');                //插入一条记录
> insert into db1.t1(id,name) values(2,'tongxue'),(3,'悟空');     //插入多条记录
> show create table db1.t1;                                       //查看当时是如何创建这个表的
> drop table db1.t1;                                              //删除表
 
 
 
内容总结
    1.mysql是基于c/s架构的软件
    2.如何安装mysql
    3.安装mysql服务
        # mysqld --install
        # mysqld --remove
        # net start mysql
        # net stop mysql
    4.破解密码
        # mysqld --skip-grant-tables
    5.统一字符编码
        my.ini
        > \s;
    6.创建用户
        > create user 'username'@'hostname' identified by 'password';
    7.给用户授权
        > grant all privileges on *.* to 'username'@'hostname';
    8.撤销用户权限
        > revoke all privileges on *.* from 'username'@'hostname';
    9.sql语句
        > select user();
        > show databases;
        > create database db1;
        > create table db1.t1(id int,name char(10)); 
        > insert into db1.t1(id,name) values(1,'bajie'), (2,'wukong'); 

Guess you like

Origin www.cnblogs.com/aiaii/p/12084140.html