记录:阿里云 ECS 自建数据库

安装前的说明

  • ECS上Linux版本:CentOS 7.4 64位

  • 安装源文件版本:mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz下载地址

MySQL下载页面

  • MySQL安装位置:/usr/local/mysql

  • 数据库文件数据位置:/user/local/mysql_data


安装步骤

  1. FTP操作

    1. mysql-5.7.23-linux-glibc2.12-x86_64.tar 上传至/usr/local路径下;

    2. /usr/local下创建mysql_data文件夹

  2. Xshell操作:解压文件

     cd /usr/local
     tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
    

    解压安装文件

    • 解压后把文件夹更名为mysql
  3. Xshell操作:创建mysql用户组和mysql用户

     groupadd mysql
     useradd -r -g mysql mysql
    
  4. 关联myql用户到mysql用户组中

     chown -R mysql:mysql  /usr/local/mysql/
     chown -R mysql:mysql  /usr/local/mysql_data/
     chown -R mysql  /usr/local/mysql/
     chown -R mysql  /usr/local/mysql_data
    
  5. 更改mysql安装文件夹mysql/的权限

     chmod -R 755 /usr/local/mysql/
    
  6. 安装libaio依赖包

    1. 检查是否安装依赖包:

       yum search libaio
      
    2. 如果没安装,用这个命令安装:

       yum install libaio
      

    安装libaio

    跳过这步直接进行第7步可能会报错:
    error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    libaio依赖缺失

  7. 初始化mysql命令

     cd /usr/local/mysql/bin
     ./mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql_data/ --initialize
    

    生成临时密码

    注意:记住临时密码,即上图中用红框标记出来的部分:(O0:rWfIftZp

  8. 启动mysql服务

     sh /usr/local/mysql/support-files/mysql.server start
    

    此步会报错

    启动报错

  9. 修改Mysql配置文件

    1. 可以vim命令编辑,也可以ftp下载后编辑,我更喜欢ftp下载后编辑

    2. 添加启动服务

       cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
       chmod 755 /etc/init.d/mysqld
      
  10. 修改my.cnf文件

    vi /etc/my.cnf
    
  11. 启动mysql

    /etc/init.d/mysqld start
    
  12. 登录mysql

    /usr/local/mysql/bin/mysql -u root –p
    

    报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    解决办法:

    /etc/init.d/mysqld stop		停止mysql
    ln -s /usr/local/mysql/bin/mysql /usr/bin
    my.cnf添加跳过密码 skip-grant-tables
    启动mysql
    	mysql -u root -p 回车进入数据库
    	use mysql;
    	update user set authentication_string=PASSWORD("Abc123.") where user='root';
    	(注意密码格式:至少包含一个大写字母、一个小写字母、一个特殊符号、一个数字,密码长度至少为8个字符。)
    	exit;
    my.cnf删除 skip-grant-tables,重启mysql;
    	mysql -u root -p 输入改后的密码;进入数据库;
    	输入命令help contents测试下;
    

    如果出现ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    解决办法:

    set password=password("Abc123");重设密码
    flush privileges; 刷新权限
    再测试下,结果正常,ok~!
    
  13. 记录留存

    登录名:root
    密码:Abc123
    
    常用命令:
    /etc/init.d/mysqld stop				停止mysql
    /etc/init.d/mysqld start			启动mysql
    mysql -u root -p				登录mysql
    
  14. 以上远程使用命令行安装mysql,但在实际使用中,我们不可能一直用命令行在远程端做操作,但就当前的设置,如果在本地使用Navicat等工具登录远程服务器会报错,

    • 提示连接被拒绝或者host is not allowed to connect mysql这类错误

        前者请检查云端有没有开放3306端口
      

      端口开放查询

        后者需要在远程登录mysql,授权,我用的是
        GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
        FLUSH   PRIVILEGES;
      

      Navicat配置MySQL

第14步还有其他的更多配置方案,可以在这篇博客中看看
报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

留下你的脚步
推荐阅读