zoukankan      html  css  js  c++  java
  • ubuntu安装mysql, 修改初始密码一条龙服务

    之前写过一篇 mac 修改 mysql 密码的文章, 比较笼统, 正好今天在服务器上新装mysql, 于是记录一下流程及遇到的问题

    安装

    首先确保服务器上 apt-get 是可用的, 然后执行三条命令

    sudo apt-get install mysql-server
    apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev
    

    执行完三条命令后, 执行sudo netstat -tap | grep mysql

    $ sudo netstat -tap | grep mysql
    tcp        0      0 localhost.localdo:mysql 0.0.0.0:*               LISTEN      6860/mysqld
    

    如果看到有mysql 的socket 处于listen的状态则表示安装成功

    修改密码

    登录mysql
    mysql -u root -p
    会发现登录失败,输不输密码都会失败, 报错如下

    ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    

    mysql 初始密码

    初次安装mysql, 会在mysqld.log文件中有一个初始密码
    一般会在 /var/log/mysqld.log 这个文件中
    如果没有这个文件, 可以全局搜索一下

    sudo find / -name 'mysqld.log'
    

    如果能找到这个文件, 试着在文件中搜一下

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

    如果找到的话, 就可以用这个密码登录了
    找不到的话也别慌, 继续往下看

    设置root用户密码

    我们可以通过 不输密码的 safe 模式进入到mysql库中

    1. 首先找到mysql的配置文件
      在 /etc/mysq 目录下
      我的目录下有这些文件及目录
    conf.d  debian-start  debian.cnf  my.cnf  my.cnf.fallback  mysql.cnf  mysql.conf.d
    

    首先看一下 my.cnf
    里面重点的有这两行

    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
    

    这说明, /etc/mysql/conf.d/ /etc/mysql/mysql.conf.d/ 这两个目录下的文件也都是mysql的配置文件
    最终, 在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件中找到了 详细的配置文件

    找到配置文件中的 [mysqld]
    在这下面加一行 skip-grant-tables

    然后重启 mysql
    命令是:

    sudo /etc/init.d/mysql restart
    

    这时, 就可以不用密码登录mysql了
    mysql -u root -p 回车后直接再回车, 不用输密码
    进入MySQL后, 选择 mysql库 use mysql

    有个 user 表, 这里保存的就是用户信息
    修改用户密码:

    update user set authentication_string=password("new_passwd") where user='root';
    
    • 注意:
      在mysql 5.7版本之前, 用户密码字段是 password, 5.7之后改为了 authentication_string
      查看mysql版本,可以在进入到mysql后, select version(); 查看; 或者再未进入到mysql时, 用 mysql -V 查看

    • 还有个问题, 留意一下user表中 ,root 用户这条记录的 plugin字段的值是否为 mysql_native_password, 如果不是需要改为这个值;有的会是 auth_socket, 这个值是不能用密码登录;关于这个auth_socket, 可以看一下文档:https://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/socket-authentication-plugin.html

    如果不修改 plugin 字段的值为 mysql_native_password, 登录msyql时会报错:

    ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    

    到这里就已经成功修改了root 用户的密码, 回到刚才找到的配置文件, 把添加的那行删掉, 再重启mysql
    此时, 用修改后的密码就能成功登录 mysql了

  • 相关阅读:
    Docker下安装redis
    Goodnotes5
    Notability
    浏览器好用的技术
    苹果平板上好用的软件推荐
    苹果平板爱思助手检验安兔兔
    积分超过排名的第一天
    卸载Windows控制面板的程序和功能中找不到的一些软件的方法
    怎样在GitHub上新建一个文件夹
    Vim的常用操作
  • 原文地址:https://www.cnblogs.com/zhang-can/p/12405217.html
Copyright © 2011-2022 走看看