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;

再等录成功!





原文地址:https://www.cnblogs.com/prettrywork/p/8029456.html