美文网首页
ubuntu mysql安装与初始化

ubuntu mysql安装与初始化

作者: 煮梦斋_bioinfo | 来源:发表于2020-04-30 17:29 被阅读0次

    Ubuntu20.04 mysql升级为8.0,涉及到caching_sha2_password的问题,正在解决
    安装mysql-server及mysql-client

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

    为了不侵占系统资源,我将mysql的data目录放在家目录下,并将该目录的访问权限为mysql这个用户名:

    cd ~
    mkdir mysql
    sudo chown -R mysql:mysql /home/XXX/mysql
    

    修改mysql配置

    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    

    三个地方做了修改,一是为了暂时提供权限添加skip-grant-tables,二是修改datadir=/home/XXX/mysql,
    为了后续可以承载更多的数据量,三是增加了输入文件最大大小至150M

    # * Basic Settings
    #
    datadir=/home/XXX/mysql
    skip-grant-tables
    # * Fine Tuning
    #
    max_allowed_packet      = 150M
    

    ESC+:wq保存退出

    启动mysql

    sudo service mysql start
    

    查看mysql是否启动使用

    ps -A|grep mysql
    
    

    因为Ubuntu有个AppArmor,是一个Linux系统安全应用程序,类似于Selinux,AppArmor默认安全策略定义个别应用程序可以访问系统资源和各自的特权,如果不设置服务的执行程序,即使你改了属主属组并0777权限,也是对服务起不到作用。

    ok,apt安装下MySQL默认数据目录是/var/lib/mysql,其它的目录权限都不可。开始修改:

    sudo vim /etc/apparmor.d/usr.sbin.mysqld
    

    找到:

    
    # Allow data dir access
      /var/lib/mysql/ r,
      /var/lib/mysql/** rwk,
     
    # Allow data files dir access
      /var/lib/mysql/ r,
      /var/lib/mysql/** rwk,
     
    修改为:
    

    Allow data dir access

    /var/lib/mysql/ r,
    /var/lib/mysql/** rwk,
    /home/XXX/mysql/ r,
    /home/XXX/mysql/** rwk,

    Allow data files dir access

    /var/lib/mysql/ r,
    /var/lib/mysql/** rwk,
    /home/XXX/mysql/ r,
    /home/XXX/mysql/** rwk,

    重启apparmor服务:
    

    service apparmor restart

    再初始化mysql
    

    cd /usr/bin/
    sudo mysqld --initialize --user=mysql --datadir=/home/XXX/mysql

    service mysql restart

    进入mysql
    

    mysql -uroot -p

    Ubuntu18.04 使用mysql 5.7之前版本,修改密码需要password函数:
    无需输入密码,直接回车跳过,设置密码为'123456' 
    

    mysql>use mysql;
    mysql>select user,plugin from user;
    mysql>update user set authentication_string=password('123456'),plugin='mysql_native_password' where user='root';
    mysql>select user, plugin from user;
    mysql>flush privileges;
    mysql>exit;

    Ubuntu20.04 mysql8.0版本,因为已经取消了password函数,所以更改密码时不一样
    

    mysql>use mysql;
    mysql>select user,plugin from user;
    mysql>UPDATE user SET authentication_string='pwd123456',plugin='mysql_native_password' WHERE user='root';
    mysql>select user, plugin from user;
    mysql>flush privileges;
    mysql>select user, plugin from user;
    mysql>exit;

    注释掉之前修改
    

    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    * Basic Settings

    skip-grant-tables

    ESC+:wq保存退出
    启动mysql:
    

    sudo service mysql restart
    mysql -uroot -p

    启动mysql,至此mysql5.7之前可以正常使用了,如果有问题,可以参考[https://www.jianshu.com/p/df975209de96](https://www.jianshu.com/p/df975209de96)
    重新设置密码
    

    但mysql8.0 报错:
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    正在解决mysql8.0带来的caching_sha2_password解决办法

    mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd123456';
    mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

    root@ubuntu:# service mysql start
    root@ubuntu:# mysql -uroot -p

    相关文章

      网友评论

          本文标题:ubuntu mysql安装与初始化

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