Centos安装MySQL5.7
在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/
下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
yum install mysql-community-server
启动MySQL服务
systemctl start mysqld
查看MySQL的启动状态
systemctl status mysqld
开机启动
systemctl enable mysqld
systemctl daemon-reload
修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。
通过下面的方式找到root默认密码,然后登录mysql进行修改:
grep 'temporary password' /var/log/mysqld.log
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
或者
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Ubuntu安装MySQL5.7
ubuntu 20.04系统自带源直接安装是MySQL 8.0,我要安装MySQL 5.7的版本的所以先进行换源。
备份原来的sorce文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
修改sources.list文件
sudo vim /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
我选择的是清华镜像源。将sources.list内容清空,然后选择一个源粘贴到sources.list,保存退出。
更新镜像源
sudo apt-get update
更新软件
sudo apt-get upgrade
安装mysql5.7服务端
sudo apt-get install mysql-server-5.7
提示输入用户密码,需输入2次
mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服务
安装mysql5.7客户端
sudo apt-get install mysql-client-5.7
使用c/c++等语言操作mysql的动态链接库,如果不需要可不安装
sudo apt install libmysqlclient-dev
deb安装包安装
安装包可以在服务器里直接获取或者自己去官网下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
官网网址:https://downloads.mysql.com/archives/community/
新建目录
mkdir mysql5.7.31
mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31
解压出来的deb安装包如下:
sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar
libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb
mysql-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-source_5.7.31-1ubuntu18.04_amd64.deb
mysql-server_5.7.31-1ubuntu18.04_amd64.deb
mysql-common_5.7.31-1ubuntu18.04_amd64.deb
mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb
删除2个测试相关的包
sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb
用dpkg进行安装
sudo dpkg -i mysql-*.deb
报错安装相关依赖包即可
下载网址 https://ubuntu.pkgs.org/
sudo apt-get install libtinfo5
sudo apt-get install libmecab2
再次用dpkg进行安装
sudo dpkg -i mysql-*.deb
提示输入2次root密码,然后安装成功
mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服务
未设置或忘了密码解决办法
停止mysql服务
sudo service mysql stop
修改MySQL的登录设置,暂时不校验登陆密码
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将[mysqld]下的“skip-external-locking”注释掉
# 添加 “skip-grant-tables” 然后保存退出
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
#skip-external-locking
skip-grant-tables
重启mysql数据库
sudo service mysql restart
免密登陆mysql数据库
mysql -u root mysql
修改root密码
update mysql.user set authentication_string=password('111222333') where user='root';
flush privileges;
还原MySQL的登录设置
# 将[mysqld]下添加的“skip-grant-tables” 删除
# 将“skip-external-locking”的注释放开然后保存退出
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
重启mysql数据库
sudo service mysql restart
使用新密码登陆mysql
mysql -uroot -p1123 mysql
卸载MySql
1.sudo apt-get autoremove mysql* --purge
2.sudo apt-get remove mysql-server
3.sudo apt-get remove mysql-common
# 清理残留数据
sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P
sudo rm -rf /etc/mysql/
sudo rm -rf /var/lib/mysql
# 检查是否删除完毕
whereis mysql
sudo find / -name mysql
修改数据库存放目录
停止服务
systemctl stop mysql
创建目录
mkdir /data/mysql
mv /var/lib/mysql /data/
修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
datadir = /data/mysql
vim /etc/apparmor.d/usr.sbin.mysqld //修改apparmo配置
# Allow data dir access
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
/data/mysql/ r,
/data/mysql/** rwk,
重新加载配置
service apparmor reload
chown mysql:mysql -R /data/mysql/
重启服务
systemctl start mysql