Linux安装MySQL
OS版本对应mysql软件包
linux6:包名mysql-server 服务名:mysql
linux7:包名mariadb*
删除原有mysql
删除旧的所有mysql (一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。)
rpm -qa | grep -i mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
rpm -qa | grep -i mysql
rpm -e MySQL-client-5.6.38-1.el7.x86_64
删除服务
chkconfig --list | grep -i mysql //查看服务
chkconfig --del mysql //删除服务
删除mysql分散的文件夹
whereis mysql
rm -rf /use/lib/mysql
rm -rf /etc/my.cnf #删除系统默认的配置文件
yum安装
配置yum源
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
yum install mysql-server -y --nogpgcheck
启动mysql
systemctl start mysqld
也可以官网下载,下载打包文件,解压就可用
官网地址:
https://downloads.mysql.com/archives/community/
也可以官网下载
上传服务器后解压:
tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
mv -v mysql-5.7.24-linux-glibc2.12-x86_64 /usr/lcoal/mysql
创建用户和组
groupadd mysql
useradd -r -g mysql mysql
将安装目录所有者及所属组改为mysql ,这个根据自己的目录来
chown -R mysql.mysql /usr/local/mysql
在mysql目录下创建data文件夹
mkdir data
yum -y install numactl
yum install libaio
初始化数据库,会自动生成密码
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
配置my.cnf
vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
#取消密码验证
#skip-grant-tables
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
将mysql加入到启动服务,设为开机启动,然后启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start
没有设置环境变量的情况下:
/usr/local/mysql/bin/mysql -uroot -p
也可以先进性设置一下环境变量:
export PATH=$PATH:/usr/local/mysql/bin
进入数据库后更改密码
set password=password('redhat');
常规报错信息
Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
mysql_install_db --user=mysql
#如没有mysql_install_db命令。
#find / -name mysql_install_db 查找mysql_install_db
#例如在/usr/local/mysql/scripts/mysql_install_db
#cd /usr/local/mysql
#执行./scripts/mysql_install_db --user=mysql
mysql8.0安装方法:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar #把文件释放出来
yum install -y mysql-community* #安装mysql
systemctl start mysqld #启动数据库
systemctl enable mysqld #加入开机自启
firewall-cmd --permanernt --add-service=mysql #加入防火墙
firewall-cmd --reload
cat /var/log/mysqld.log | grep localhost #查看默认密码
mysql -uroot -p #进入数据库
8.0版本
更改密码为空即‘mima’处无内容,即为免密(亦可设置你习惯的密码,就不是免密了)
alter user 'root'@'localhost' identified by 'mima';
flush privileges;
exit
更改登录密码:
一: 在mysql中:
set password=password('redhat'); #修改当前用户密码
二:不在mysql中:
systemctl stop mariadb #停止mysql
vim /etc/my.cnf #更改配置文件
[mysqld]
skip-grant-tables
systemctl start mariadb
mysql 空密码进入
use mysql;
查看user表:
select Host,User,Password from mysql.user;
添加密码:
grant all on *.* to root@localhost identified by '123456' with grant option;
mysql5.7
update user set authentication_string=password('123456') where user='root' and Host='localhost';
flush privileges; #刷新
exit
改完后:
vim /etc/my.cnf
#skip-grant-tables #注释
systemctl restart mariadb #重启服务
3:改密:mysql_secure_installation
mysql登录不上了
service mysqld restart
先报正确再报失败,报的错误就是Another MySQL daemon already running with the same unix socket.
直接删除这个:
rm /var/lib/mysql/mysql.sock
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
service mysqld restart #重启mysql