liunx 安装 mysql 5.6

第一步  解压文件

目录切换到 /usr/local/

    cd /usr/local/

解压 tar zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

重命名为 mysql

第二步 添加用户组和用户添加用户组

groupadd mysql
添加 mysql 用户
useradd -g mysql mysql
修改目录为拥有者为 mysql 用户

cd mysql

chown -R mysql:mysql ./
第三步 安装 mysql
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
不开心的是报错了

解决办法 

安装 autoconf 库

yum install -y perl-Data-Dumper

也有可能报这个错截图如下(该错误是另外一次安装是遇见的)

解决办法 安装 libaio 库文件 

yum install libaio* -y

第四步 修改当前用户为 root 用户

chown -R root:root ./

修改 data 目录拥有者为 mysql 用户

chown -R mysql:mysql data
第五步 把 mysql 客户端放到默认目录下
ln -s /usr/local/mysql/bin/mysql /usr/bin
第六步 登录 mysql
mysql -uroot -p
第一次不用输入密码 直接按 enter 进入下一步
这里有报错 socket 路径有问题

 打开 /etc/my.cnf 文件

vi /etc/my.cnf  可以看到 socket=/var/lib/mysql/mysql.sock 和 /tmp/mysql.sock 目录不一致

 解决办法 创建软连接

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

启动 mysql    

service mysqld start 或者 systemctl start mariadb.service

这里有报错

Starting MySQL.The server quit without updating PID file (/[FAILED]l/mysql/data/iZuf6gjb9m90kycy585scnZ.pid).

修改 /etc/my.cnf 文件

[mysqld] 中  将 datadir = /usr/local/mysql/data

log-error = /usr/local/mysql/data/error.log

pid-file = /usr/local/mysql/data/mysql.pid

user = mysql

tmpdir = /tmp

开启 bin_log 日志

log-bin=/usr/local/mysql/data/mysql-bin

退出 重新初始化数据库  全部指明文件的位置

./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp  

修改权限为 root

[root@localhost mysql]# chown -R root:root .

[root@localhost mysql]# chown -R mysql:mysql data

添加启动服务

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql

# 添加服务

chkconfig --add mysql 

[root@localhost mysql]# service mysql start

查看开启的服务(chkconfig --list)

 再次启动 myslq  service mysqld start  (CentOS7.0 以上启动命令: /bin/systemctl start mysqld.service)

启动成功

Starting MySQL.                                            [  OK ]

登陆 mysql

mysql -uroop -p

初次进去 mysql 没有密码 直接按 enter 进入 msyql

查看数据库

show databases;

CentOS 7 以上版本 将 mysql 全部改为 mariadb ,mariadb 就是 mysql 创始人女儿的名字 。所以也有可能一下这种情况。

(查看 liunx Centos 版本 命令:cat /etc/redhat-release)

 

第七步  修改 root 用户密码

use mysql;

select user,password , host from user;

mysql> update user set password='xxx' where user='root';(这样是不行的)

刷新权限表使之有效

flush privileges;

退出 quit;

测试一下修改的密码  重新进入 mysql

这次发现密码不正确

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

原因是上一步更新密码时候语句不正确

不输入密码直接按 enter 是可以进入 mysql

但是这时候发现什么都干不了

解决办法   修改 /etc/my.cnf 文件

在 [mysqld] 下面添加 skip-grant-tables  启动 mysql 是不启动授权表

重新进入 mysql  这个时候是可以操作了

在查一下刚刚设置的密码,为什么不对

mysql> select user,password , host from user;
+------+-----------+-------------------------+
| user | password | host |
+------+-----------+-------------------------+
| root | xxx | localhost |
| root | xxx | izuf6gjb9m90kycy585scnz |
| root | xxx | 127.0.0.1 |
| root | xxx | ::1 |
| | | localhost |
| | | izuf6gjb9m90kycy585scnz |
+------+-----------+-------------------------+

第八步 重新更新密码

update user set password =password('xxx') where user='root';

刷新 flush privileges; 退出 quit;

再将 /etc/my.cnf 中添加的 skip-grant-tables 去掉。

重新进入 mysql 这时候密码是正确的

给远程用户授权

在本服务器中是可以登录的,但是用客户端是没法登录的,提示没有登录权限,需要给远程用户授权

 grant all privileges on *.* to 'root'@'%' identified by 'xxx' with grant option;

刷新权限表 flush privileges;

再等录成功!