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 my
sql 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;
再等录成功!