第一步 解压文件
目录切换到/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;
再等录成功!