卸载旧版本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.-linux-glibc2.-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。