zoukankan      html  css  js  c++  java
  • Linux-Mysql8.0

    Mysql8.0.12

    1. 基本操作
    解释 命令
    安装服务端 yum install mysql-community-server
    启动 service mysqld start/restart
    停止 service mysqld stop

    因为CentOS7默认安装的是mariadb数据库,所以

    • 首先移除yum remove mariadb-libs.x86_64
    • 下载Mysql源https://dev.mysql.com/downloads/repo/yum/,这个网站上找到对应的链接,然后在/tmp目录下通过wget下载就可以了
    • 安装源yum localinstall mysql80-munity-release-el7-8.noarch.rpm
    • 安装Mysqlyum install mysql-community-server
    • 默认密码 cat /var/log/mysqld.log | grep "password",就会看到默认的密码
    • 登陆数据库 mysql -uroot -p上面看到的密码,此时就会进入数据库

    使用默认密码登陆

    • 首先要重置密码mysql> SET PASSWORD = PASSWORD('123456');   //123456 是重置的新密码 ,但是这样就会又报错,说的是密码太简单了,这个时候就设置一个带有大小写+数字+特殊符号的就可以了
    • 如果一定要设置简单的,那么需要修改这两个参数:mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; ,这个时候再设置简单的也就可以了
    • 注意:经过一下午的时间才知道上面的方法已经不行了,首先使用ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#',来进行修改密码,密码不要太简单,然后重新登陆,执行这三个命令
    use mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    FLUSH PRIVILEGES;
    
    • 因为这个是mysql的最新版本,详情看这里https://www.jb51.net/article/142025.htm

    远程连接

    • 首先进入到数据库中show databases;查看数据库,然后进入到mysql数据库中,use mysql;,查看数据表:show tables; 然后找到user表,查看里面的数据select * from user G,此时会看到好多数据,我们这里只需要查看Host、User,所以select Host,user from user G,就可以看到了
    • 这个时候就会看到一条User=root的记录,这个Host后面的值为本机,为了能够远程访问数据库,把这个Host改为要访问的地址,这里为了都能访问就改成update user set Host = "%" where Host = "localhost" and User = "root";,然后重启服务器,或者是权限刷新 mysql>flush privileges; 最后关闭防火墙service firewalld stop
    • 此时在本机就可以远程连接到这个数据库了
      远程连接

    配置默认编码utf8,这个看个人需要

    • vim/etc/my.cnf ,在[mysqld]下添加编码配置,如下所示:
    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    
    • 重新启动mysql服务,查看数据库默认编码如下所示show variables like '%character%'
      编码格式
    • 默认配置文件路径
    配置文件 /etc/my.cnf
    日志文件 /var/log//var/log/mysqld.log
    服务启动脚本 /usr/lib/systemd/system/mysqld.service
    socket文件 /var/run/mysqld/mysqld.pid

    开启genelog

    • 首先进入到数据库中 mysql -uroot -p,然后进设置general log保存路径msyql> set global general_log_file="/tmp/general.log";
    • 注意在Linux中只能设置到 /tmp 或 /var 文件夹下,设置其他路径出错
    • 设置开启 mysql>set global general_log=on;
    • 关闭mysql>set global general_log=off;
    • 此时对数据库进行操作的话,每一条命令记录都会到上面的文件中去,tail -f /tmp/general.log就会看到每一条操作数据库的命令

    新建用户

    • 首先进入到数据库中 mysql -uroot -p,,然后mysql> create user 'imooc'@'%' identified by '123456';,其中的%表示允许所有用户登陆,后面设置的是密码,此时会说密码过于简单,这个时候和上面的操作一样,看注意就行了
    • 此时使用终端远程连接的时候就能使用这个imooc这个账号的了,但是用这个账号登陆,会少很多权限
    • 提权grant all privileges on *.* 'imooc'@'%' identified by '123456' with grant option;这条命令就是把这个imooc用户提全部的权限,然后刷新权限
    • 或者只赋予查询的权限``grant select on . 'imooc'@'%' identified by '123456' with grant option;`,每次操作记得要刷新权限
    • 收回所有的权限revoke all privileges on *.* FROM imooc;

    忘记root密码

    • 打开这个文件/etc/my.cnf ,在最后一行加入一行代码skip-grant-tables
    • 进入到数据库,这个时候不用密码就可以进了,然后use mysql,输入下面的命令update user set authentication_string=password('456789') where user='root'; ,刷新权限,退出
    • 然后把第一步加入的代码去掉,然后再进入数据库,此时输入第二步设置的密码就会登陆成功

    导入导出数据库

    • 导出数据库:mysqldump -u 数据库链接用户名 -p  目标数据库 > 存储的文件名 ,然后回车输入密码就可以了 ,就像mysqldump -u root -p abc >abc.sql ,文件会直接在当前的目录下
    • 导入数据库mysql -u 用户名 -p  数据库名 < 数据库名.sql ,就像mysql -u abc -p abc < abc.sql ,注意sql文件必须在当前目录下,如果不在当前目录下需要在< 之后加上具体sql文件路径
  • 相关阅读:
    Asp.NET调用有道翻译API
    JSON C# Class Generator ---由json字符串生成C#实体类的工具
    让jQuery的contains方法不区分大小写
    javascript parseUrl函数(来自国外的获取网址url参数)
    typescript
    webpack 第二部分
    express node 框架介绍
    webpack 最新版
    es6 字符串 对象 拓展 及 less 的语法
    es6 的数组的方法
  • 原文地址:https://www.cnblogs.com/mengd/p/9438887.html
Copyright © 2011-2022 走看看