1.删除原有的mariadb,不然mysql装不进去
查询MAriaDB命令 rpm -qa|grep mariadb
删除 rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
(yum -y remove mysql 如需要清除服务器上以前安装过的MySQL可执行此命令,执行前一定要备份好数据库)
2、安装MySQL依赖libaio包
yum install libaio
3、上传MySQL安装包
cd /usr/local/
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
4、给MySQL安装目录赋予访问权限并创建MySQL组和用户
进入MySQL8目录下赋予777权限(777 读写执行)
chmod -R 777 /usr/local/mysql 意思就是将mysql8目录下所有文件都给予最高权限
创建MySQL用户组
groupadd mysql
创建mysql用户,-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限:
useradd -m -g mysql -s /bin/false mysql
添加用户mysql到组mysql中
chown -R mysql:mysql ./
5、修改MySQL配置文件
在mysql8目录中新建文件夹mysqldb,这个文件夹在mysql的配置中将会用到,和windows系统中通过解压安装的方式的意义是一样的:
cd /usr/local/mysql
mkdir mysqldb
修改配置文件
vi /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
6、安装MySQL并启动MySQL服务
进入到MySQL bin目录下,执行安装,安装完成会生成一个随机密码要记录一下,第一次登录要使用
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/mysqldb --user=mysql --initialize
##备用##./mysqld --initialize --console
随机产生的密码 h%kIha-eb6ye
启动服务
mysql.server服务在安装目录的support-files目录下,执行以下指令进行启动:
cd /usr/local/mysql/support-files
chmod -R 777 /usr/local/mysql
./mysql.server start
7、添加MySQL到系统进程中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
8、设置MySQL服务开机自动启动
chmod +x /etc/init.d/mysqld
旧的启动方法
chkconfig --add /etc/init.d/mysqld
chkconfig --level 345 mysqld on
新的自动启动方法
systemctl enable mysqld
9、修改root用户原始密码
添加环境变量
vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
这样可以是mysql命令被识别
source /etc/profile
mysql -uroot -p #输入上边记录的密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1';
10、设置允许远程登录 (需要登录MySQL执行)
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
quit;
执行完以上语句后要重新启动服务才能生效
service mysqld restart
systemctl restart mysql
查看MySQL服务是否启动成功
systemctl status mysql
如出现active(running则表示服务是启动的)
11、设置防火墙,开放3306端口
查看防火墙是否开放过此端口
firewall-cmd --list-all
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
一定要重启防火墙
firewall-cmd --reload
12、用 Navicat客户端链接测试
##################################################################################
问题解决:
##################################################################################
1、如果忘记了Mysql密码,则需要修改my.cnf文件
vim /etc/my.cnf
添加如下语句
[mysqld]
skip-grant-tables
然后重启数据库
mysql -u root
登录出现sql输入界面
先输入:flush privileges;
再输入:ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
修改完数据把my.cnf文件再修改回去
2、-bash: mysql: 未找到命令
echo $PATH 没有MySQL相关的命令
在profile文件中添加环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH