CentOS_7下安装MySQL

卸载旧版本MySQl:

下载MySQ:

MySQl官网:https://dev.mysql.com/downloads/mysql/

版本自选,操作系统选Linux-Generic,64位系统或者32位系统看自己电脑

 

复制链接地址

下载压缩文件至 /usr/local/src

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz

解压并删除安装包

tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
rm -rf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz

复制安装包到另一位置并重命名(注:mysql-5.6.43-linux-glibc2.12-x86_64后面不加/)

cp mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql -r

添加mysql用户组与mysql用户:

保证mysql服务独立性,即使出现问题也不会影响整个系统。

检查是否有mysql用户组与mysql用户

cd /usr/local/mysql/
groups mysql

若无,则添加

groupadd mysql
useradd -r -g mysql mysql

修改当前目录拥有者为mysql用户:

chown -R mysql:mysql ./

执行安装脚本:

./scripts/mysql_install_db --user=mysql

若出现下图所示error,则安装libaio后再重新执行安装脚本

修改当前目录拥有者为root用户,修改data目录拥有者为mysql:

chown -R root:root ./
chown -R mysql:mysql data

启动mysql:

./support-files/mysql.server start

若出现下图所示error

解决方法:

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log

更改密码:

./bin/mysqladmin -u root password '这里是你的密码'

若出现下图所示error

mysql.sock的作用:连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。

解决方法:

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

mysql.sock默认的是在/var/lib/mysql,find命令查找mysql.sock文件,若存在则直接为它创建软链接到/tmp/mysql.sock的联接

登录mysql:

./bin/mysql -uroot -p这里填你的密码

完成:

查看版本:status;

把启动脚本放到开机初始化目录

原因:可以使用"service 服务名称"来进行管理,比如常常使用的命令”service mysql start”,就是mysql注册成为linux的系统服务了,不需要写一大串的原始服务路径。

cp support-files/mysql.server /etc/init.d/mysql

停止:service mysql stop

(失败的话尝试:service mysqld stop,下同)

启动:service mysql start

重启:service mysql restart

 

增加远程登录权限:

解决方法:

登录阿里云服务器,找到防火墙,按下图添加规则

再重新连接,成功。

 

小插曲:我在解决远程连接时巴拉巴拉不知弄了什么,竟然连服务器上的mysql都登录不了,最后只能重置root密码。

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

vim /etc/my.cnf

有skip-grant-tables则取消注释,没有的话则添加。保存并退出vim。重启mysql。

cd /usr/local/mysql/bin/
./mysql -uroot -p

不用输入密码,直接Enter。

登录成功后,执行下面命令:

use mysql;
update mysql.user set password=PASSWORD('这里是你的新密码') where user='root';
flush privileges;
quit;

重置完成后,将刚刚添加在 /etc/my.cnf 的skip-grant-tables注释掉,并重启mysql。

 终于好了!!!!

posted @ 2019-02-20 17:00  江梦丽  阅读(628)  评论(0编辑  收藏  举报