在Centos6.9下安装Mysql

学习hadoop学的hive,发现需要先在虚拟机上安装Mysql,但是这个装起来真的麻烦,我整整装了一天,接下来就把过程记录下来以备学习。由于我的mini版centos没有设置联网,所以采用了安装包的方式进行安装。


一、下载Mysql

    可以去http://mirrors.sohu.com/mysql/MySQL-5.7/下载,选择你需要的版本。我的系统centos6.9(final),选择了5.7.17版本,文件名为mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

在Centos6.9下安装Mysql_第1张图片


二、检查你所用的Linux下有没有安装过mysql,没有卸载干净

使用以下语句查询。

#rpm -qa|grep -i mysql

如果有文件,也可能有多个,那么就依次 rpm -e xx --nodeps 卸载,卸载完了再检查一下,若确定删除干净后,在进行下面步骤


三、创建mysql的用户组/用户, data目录及其用户目录

在这步之前一定要先确保你所建的用户以及用户组没有存在,要不然在后面的过程中会报错,删除时候要先删除用户在删除用户组名。

# userdel mysql # 删除用户

# groupdel mysql # 删除用户组名

# groupadd mysql # 创建一个名为mysql的用户组

# useradd -g mysql -d /usr/local/mysql mysql # 在用户组下创建用户

# mkdir /home/mysql/data # 在mysql文件夹下创建文件夹data

------确认文件夹权------

在Centos6.9下安装Mysql_第2张图片


四、解压安装包并将解压包里的内容拷贝到mysql的安装目录/usr/local/mysql/

这里可以移动到自己的目录,然后在之后的/etc/my.cnf文件中设置路径,由于我第一次安装就是自己的路径,且发生了错误,所以拷贝到了mysql的默认目录,即/usr/local/mysql/.

# tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

# cd mysql-5.7.17-linux-glibc2.5-x86_64

# mv * /usr/local/mysql


五、初始化mysql数据

cd进入mysql目录,执行以下命令。

# ./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize

如果是 mysql5.7以前则需要以下的命

#./bin/mysql_install_db --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

在Centos6.9下安装Mysql_第3张图片

------如果出现一下提示------

2018-04-08T01:46:53.153530Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2018-04-08T01:46:53.155856Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.

2018-04-08T01:46:53.155879Z 0 [ERROR] Aborting

表明  datadir 指向的目标目录下已经有数据文件,我们需要 清空mysql的data目录, 执行清空命令如下:

# cd /home/mysql/data

# rm -fr *

然后重新执行初始化命令,并牢记密码


检测下是否能启动mysql服务

# cd /usr/local/mysql

# ./support-files/mysql.server 

startStarting MySQL.. SUCCESS!


--------若改用了/home/mysql为mysql的安装目录basedir, 则在启动服务时会出现如下错误---------

# ./support-files/mysql.server start

./support-files/mysql.server: line 276: cd: /usr/local/mysql: No such file or directory

Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

由上面可知mysql的tar.gz安装包的默认安装目录为/usr/local/mysql, 这时候我们需要修改/support-files/mysql.server文件的basedir和datadir目录路径为我们环境所在的mysql的basedir和datadir路径, 如下

# vim support-files/mysql.server

--------------------------

...

basedir=/home/mysqldatadir=/home/mysql/data

...

--------------------------

# ./support-files/mysql.server start

Starting MySQL.. SUCCESS!


七、 创建软链

# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

八、 配置mysql服务开机自动启动

拷贝启动文件到/etc/init.d/下并重命令为mysqld,增加执行权限

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

检查自启动项列表中没有mysqld这个,如果没有就添加mysqld, 设置开机启动:

# chkconfig --list mysqld

# chkconfig --add mysqld

# chkconfig mysqld on


九、 mysql服务的启动/重启/停止

# service mysqld start

# service mysqld restart

# service mysqld stop 


十、初始化mysql用户root的密码

进入mysql目录,执行以下命令:

# /etc/init.d/mysqld stop //停止mysql服务的运行
# ./bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //跳过受权表访问
#  mysql -u root mysql //登录mysql

--------有可能会出现一些的现象,登不上去mysql--------

在Centos6.9下安装Mysql_第4张图片

这个问题困扰了好久,解决:1看/etc/下是否有my.cnf这个配置文件,有的话删掉,再重启重新初始化。

                                              2删掉以后还有的话,就reboot重启虚拟机一下,再重新初始化。

登上去以后初始化mysql用户root的密码

mysql> update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';

mysql> FLUSH PRIVILEGES;

mysql> quit 

# /etc/init.d/mysqld restart //离开并重启mysql

# mysql -uroot -p
Enter password: <输入新设的密码newpassword> 

在Centos6.9下安装Mysql_第5张图片

进行登陆,安装成功:

在Centos6.9下安装Mysql_第6张图片


十一、mysql远程授权

如果不设置远程连接,用mysql数据库连接工具可是连接不上的哦!!!

grant all on *.* to 'root'@'%' identified by 'hadoop';

--------我出现了一下错误--------


解决:修改用户密码

          mysql> alter user 'root'@'localhost' identified by 'hadoop';  

          刷新权限

          mysql> flush privileges;

          然后继续那个指令。

至此,mysql安装成功~。

你可能感兴趣的:(Hadoop)