Advertisement

在阿里云轻量运用服务器上安装MySQL5.7

阅读量:

**

在阿里云轻量运用服务器上安装MySQL5.7

**

说明

我使用的是阿里云的轻量应用服务器安装MySQL5.7,过程中踩了不少坑。所以在这里总结一下安装过程。我选用的应用镜像是node.js(之间用lamp没安装成功),系统镜像是CentOS7.3.

删除MariaDB

阿里云服务器Cent OS 7 的 yum 源中已经不再包含在 MySQL,而改用了 MariaDB。
MariaDB 是 mysql 被 Oracle 收购以后,新开的一个 mysql 的分支,完全兼容 mysql。
虽然两者没什么差别,但主要是出于习惯,用起来顺手所以把 MariaDB 换成mysql 。
闲话不多说,开始吧!

  1. 查询 MariaDB 是否已经安装了
    #rpm -qa | grep maria*
  2. 删除 MariaDB
    #yum -y remove maria*
    【注意】 如果第一步命令执行以后,什么都没有,那么第二就直接跳过吧,因为你的系统中并没有装 MariaDB 。

安装mysql5.7

  1. 下载tar包,这里使用wget从官网下载
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

  2. 将mysql安装到/usr/local/mysql下
    #解压
    tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
    #移动
    mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
    #重命名
    mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

  3. 新建data目录
    mkdir /usr/local/mysql/data

  4. 新建mysql用户、mysql用户组

复制代码
    mkdir /usr/local/mysql/data

#添加mysql用户组

复制代码
    groupadd mysql

#添加mysql用户

复制代码
    useradd mysql -g mysql
  1. 将/usr/local/mysql的所有者及所属组改为mysql
复制代码
    chown -R mysql.mysql /usr/local/mysql
  1. 配置
复制代码
    /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

#如果出现以下错误:

复制代码
    2018-07-14 06:40:32 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
    2018-07-14 06:40:32 [ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
    2018-07-14 06:40:32 [ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
    -- server log begin --
    
    -- server log end --

#则使用以下命令:

复制代码
    /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

#如果出现以下错误:

复制代码
    /usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

#则执行以下命令:

复制代码
    yum -y install numactl

#完成后继续安装:

复制代码
    /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

若报错如下,可输入 yum install libaio* 解决

复制代码
    Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

#编辑/etc/my.cnf

复制代码
    vi /etc/my.cnf

进入vi后,按i插入下面代码块

复制代码
    [mysqld]
    datadir=/usr/local/mysql/data
    basedir=/usr/local/mysql
    socket=/tmp/mysql.sock
    user=mysql
    port=3306
    character-set-server=utf8
    # 取消密码验证
    skip-grant-tables
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # skip-grant-tables
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

按Ctrl+C,
然后输入
:wq
就保存退出了。
7. 开启服务
#将mysql加入服务

复制代码
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

#开机自启

复制代码
    chkconfig mysql on

#开启

复制代码
    service mysql start

#关闭代码如下,但不需要关闭后面还有操作

复制代码
    service mysql stop
  1. 设置密码

#登录(由于/etc/my.cnf中设置了取消密码验证,所以此处密码任意

复制代码
    /usr/local/mysql/bin/mysql -u root -p

若出现如下报错:

复制代码
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

输入:

复制代码
    mysql

会报错如下:

复制代码
    mysql: command not found

这个是因为/usr/local/bin目录下缺失mysql导致,只需要以下方法建立软链接,即可以解决:
把mysql安装目录,比如MYSQLPATH/bin/mysql,映射到/usr/local/bin目录下:

复制代码
     cd /usr/local/bin
     ln -fs /MYSQLPATH/bin/mysql mysql

再输入#mysql即可进入mysql
#接下来就是用sql来修改root的密码

复制代码
    mysql> use mysql;
    mysql> update user set authentication_string=password("你的新密码") where user="root";
    mysql> flush privileges;
    mysql> quit

到这里root账户就已经重置成新的密码了。
编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

  1. 登录再次设置密码(不知道为啥如果不再次设置密码就操作不了数据库了)
复制代码
    /usr/local/mysql/bin/mysql -u root -p
    mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码';
    mysql>exit;

允许远程连接

复制代码
    /usr/local/mysql/bin/mysql -u root -p
    mysql>use mysql;
    mysql>update user set host='%' where user = 'root';
    mysql>flush privileges;
    mysql>eixt;

cent OS下干净卸载mysql

使用以下命令查看当前安装mysql的情况

复制代码
    rpm -qa | grep -i mysql

显示之前安装的东西,示例:

复制代码
    MySQL-client-5.5.25a-1.rhel5
    MySQL-server-5.5.25a-1.rhel5

停止mysql服务,删除这些安装的内容
删除命令:

复制代码
    rpm -e –nodeps 包名
    rpm -ev MySQL-client-5.5.25a-1.rhel5
    rpm -ev MySQL-server-5.5.25a-1.rhel5

如果提示依赖包错误,则使用以下命令尝试

复制代码
    rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:

复制代码
    rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

查找之前老版本的mysql的目录、并且删除老版本mysql的文件和库

复制代码
    find / -name mysql

显示:

复制代码
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/lib64/mysql

删除对应的mysql目录

复制代码
    rm -rf /var/lib/mysql
    rm -rf /var/lib/mysql
    rm -rf /usr/lib64/mysql

查找目录并删除

注意:卸载后/etc/my.cnf不会删除,需要进行手工删除

复制代码
    rm -rf /etc/my.cnf

再次查找机器是否安装mysql

复制代码
    rpm -qa|grep -i mysql

无结果,说明已经卸载彻底

全部评论 (0)

还没有任何评论哟~