Centos MySql安装,手动安装保姆级教程

 
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

你可能感兴趣的:(centos,mysql)