Linux安装MySQL
前置条件
centos删除原有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 #删除系统默认的配置文件
ubuntu 删除原有mysql
dpkg -l | grep mysql
#ii mysql-client-core-8.0 8.0.37-0ubuntu0.22.04.3 amd64 MySQL database core client binaries
apt-get remove mysql-client-core-8.0
查看开机自启服务
systemctl list-unit-files --type=service | grep enabled
删除mysql分散的文件夹
whereis mysql
rm -rf /use/lib/mysql
rm -rf /etc/my.cnf #删除系统默认的配置文件
centos 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 -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
mv -v mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
创建用户和组
groupadd mysql
useradd -r -g mysql mysql
将安装目录所有者及所属组改为mysql ,这个根据自己的目录来
chown -R mysql.mysql /usr/local/mysql
在mysql目录下创建data文件夹
cd /usr/local/mysql
mkdir data
centos 需要安装相关依赖
yum -y install numactl
yum install libaio
初始化数据库,会自动生成密码
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
ubuntu 需要安装相关依赖
apt-get install numactl
apt-get install libncurses5
初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
配置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
[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
也可以先设置一下环境变量:
echo "PATH=$PATH:/usr/local/mysql/bin">> ~/.bashrc
进入数据库后更改密码
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