• Linux,Mac下MySQL的安装及一些知识点的整理


    Linux下载安装

    在服务器上下载的话,需要安装Mysql5.7相关的yum源

    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    

    安装刚下载的rpm包

    rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    

    确保yum源中生效的是我们刚刚添加进来的5.7版本

    yum repolist all | grep
    

    结果如下图, 很显然,我默认生效的依赖是mysql8.0 , 所以需要修改配置

    命令:

    vim /etc/yum.repos.d/mysql-community.repo
    

    修改成这样:

    ok, 开始安装

    yum -y install mysql-community-server
    

    启动服务:

    # centos6
    service mysql stop/start
    
    # centos6 7
    systemctl stop/start/restart mysqld.service
    

    其他零散的知识点


    在华为云上按上面的安装步骤,可以通过 whereis my 查看到配置文件的位置

    [root@139 ~]# whereis my
    my: /etc/my.cnf
    

    这个my.cnf中有mysql进程相关的配置,比如刚才安装的mysql的my.cnf就长下面这样。

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

    有时候我们想配置让mysql支持无密登陆

    或者像上面那样我们刚安装了一台mysql,也不知道root的密码是多少,可以像下面这样,在my.cnf中的 [mysqld] 模块中添加 skip-grant-tables 参数实现无密登陆

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    skip-grant-tables
    

    还是上面的情况,假设机器依然是centos7,我们安装完mysql后偏偏想用root账户密码登陆mysql,那root的默认密码在哪里查看呢?

    grep 'temporary password' /var/log/mysqld.log
    

    这个密码很难记,然后我们可以像下面这样修改密码

    alter user 'root'@'localhost' identified by ‘newPassword’;
    

    如果我们设置的newPassword太简单了,它会像下面这样提示我们密码不够强大

    Your password does not satisfy the current policy requirements

    于是我们就得使用下面的命令修改规则

    set global validate_password_policy=LOW; 
    

    重启,重复上面的操作。

    于是你就能本机轻松使用root登陆了


    如果mysql不是在你的本机,而是在远程服务器,你会发现有时明明账号密码都正确,但是你就是不能远程登陆上去。很可能是因为我们使用的这个账号就不允许远程登陆。

    mysql的用户信息存放在 mysql/user表下;如下图,查看这个表中的部分内容。

    下图中的host如果为localhsot,说名root账户仅能在本地登陆。

    我的已经改成 % ,支持本地登陆和远程登陆。

    拓展知识:mysql.user 中的Host列不同值的含义 https://www.cnblogs.com/liuhaidon/archive/2019/09/12/11511129.html

    通过命令修改:

    # 1. 连接数据库
    mysql> use mysql;
    mysql> update user set host = '%' where user = 'root';
    

    DataGrip想连接mysql, 需要下载相应的驱动, 如下图:


    Mac下安装

    如果你的电脑mac,可以参考这个大佬的笔记安装mysql:点击查看详情

    上面的大佬中的笔记有如需要说一下的地方:

    知道这一点,下次再安装完mysql后,然后直接打开控制台输入mysql -V却发现,咦?怎么说不认识这个命令? 难道是我没安装成功吗?(纯洁的微笑)

    当然你按照上面大佬博文中的教程将mysql安装到mac上后。然后使用如下命令启动mysql:

    sudo mysql.server start
    

    如何关闭mysql?

    1. 简单粗暴的通过 ps aux | grep mysql 找到mysql的进程id,然后 kill -9 pid强杀

    2. 也可以通过上面的脚本 sudo mysql.server stop终止mysql



    然而root的密码你还是不知道。貌似你还是登陆不上去啊?

    那你可以这样做:在上面配置的support-file文件中添加启动参数skip-grant-tables



    然后你就能免密登陆了(免密登陆,它让你输入密码,你直接敲回车就能进去,然后你要做的第一件事就是去改密码)

    刷新一下权限表:新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­

    flush privileges
    

    执行命令修改root密码:

    alter user 'root'@'localhost' identified by 'root';
    

    查询my.cnf中定义的端口:

    >select @@port;
    +--------+
    | @@port |
    +--------+
    |   3306 |
    +--------+
    

     

    再说一个小技巧:可以帮助我们快速查看到mysql都使用了哪些配置文件。

    ps aux | grep mysql
    

    如下:(当然这是在mysql已经启动的情况下)

    MacBook-Pro:~ root# ps aux | grep mysql
    root             39669   0.0  0.0  4285448    808 s005  S+    7:32PM   0:00.00 grep mysql
    _mysql           39097   0.0  0.6  4689984  47620 s005  S     7:16PM   0:00.58 /usr/local/mysql/bin/mysqld 
    --basedir=/usr/local/mysql 
    --datadir=/usr/local/mysql/data 
    --plugin-dir=/usr/local/mysql/lib/plugin 
    --user=mysql 
    --skip-grant-tables 
    --log-error=MacBook-Pro.local.err 
    --pid-file=/usr/local/mysql/data/mysqld.local.pid
    root             38998   0.0  0.0  4288076    936 s005  S     7:16PM   0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe 
    --skip-grant-tables 
    --datadir=/usr/local/mysql/data 
    --pid-file=/usr/local/mysql/data/mysqld.local.pid
    
  • 相关阅读:
    临界区,互斥量,信号量,事件的区别
    解决位图失真-SetStretchBltMode()
    Invalidate、RedrawWindow与UpdateWindow
    Shlwapi.h Shlwapi.dll 动态库
    C++ _access和_waccess的使用方法
    纯C++ 连接SQL Server2005 数据库读写操作的小例子
    测试代码执行时间的帮助类
    BUG: GetDC() ReleaseDC()引起的内存泄漏
    DebugView图文教程
    CreateFile函数详解
  • 原文地址:https://www.cnblogs.com/ZhuChangwu/p/12984153.html
Copyright © 2020-2023  润新知