• Linux下安装MySQL你又踩过多少坑【宇宙最全教程】


    一、检查以前是否安装过MySql

    因为CentOS7一般默认安装mariadb,所以要检查mysql或者mariadb是否安装

    rpm -pa | grep -i mysql
    
    rpm -pa | grep -i mariadb

    whereis mysql

    结果:

     二、发现有的话就都卸载

    rpm -e --nodeps 需要卸载的文件名

    rm -rf 需要卸载的文件名

    三、删除老版本MySQL的开发头文件和库

    rm -rf  /etc/my.cnf
    
    rm -rf  /var/lib/mysql

    注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,确定没用后就手动删除

    四、准备安装包

    可以根据自己的需要选择自己版本的安装包,一般企业用的是5.7+以上的版本,所以我这里下载的是5.7.2的版本,官方下载:https://downloads.mysql.com/archives/community/  

    我是自己手动下载之后再上传到虚拟机服务器,同志们也可以根据wget进行下载,各取所需

    解压压缩包

    tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

     五、安装相应的依赖包

    yum update

    yum install perl yum install net-tools

    六、安装Client & Server 

    依次执行下列命令进行安装:

    rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

    七、开启MySql服务

    1、查看mysql服务状态:

    systemctl status mysqld
    
    service mysqld status

     2、启动mysql

    -- 启动
    systemctl start mysqld
    
    
    -- 重启
    systemctl restart mysqld

     八、登录

    1、免密码登录设置,修改配置文件 vi /etc/my.cnf ,找到 [mysqld] ,在下面一行添加 skip-grant-tables ,然后":wq"保存

     2、重启mysql 服务 systemctl restart mysqld 然后 输入命令 mysql

    如下图说明登录成功

     3、选择当前数据库 use mysql;

     4、修改root密码

    两种方式都可以试试

    update user set authentication_string=PASSWORD('新密码') where user='root';

    SET PASSWORD = PASSWORD('新密码');

    5、刷新权限

    flush privileges;

    # 退出MySQL
    quit;

    exit;

    6、编辑配置文件/etc/my.cnf 取消 skip-grant-tables

    7、重启mysql服务 再次登录 mysql -uroot -p回车,输入刚刚修改的密码然后回车

    九、设置root用户允许远程连接

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

    flush privileges;

    十、查看防火墙信息并开放端口

    前面步骤都执行完之后,就是要开启防火墙并开通mysql 默认端口3306,傻瓜式执行下面几个命令就行,不要问我为什么,执行就完事

    1、查看防火墙状态
    systemctl status firewalld
    
    2、如果不是显示active状态,需要打开防火墙
    systemctl start firewalld
    
    3、查看所有已开放的临时端口(默认为空)
    firewall-cmd --list-ports
    
    4、 查看所有永久开放的端口(默认为空)
    firewall-cmd --list-ports --permanent
    
    5、添加永久开放的端口(例如:3306端口)
    firewall-cmd --add-port=3306/tcp --permanent
    
    6、配置结束后需要输入重载命令并重启防火墙以生效配置
    firewall-cmd --reload
    systemctl restart firewalld

    十一、远程登录连接

    我使用的是Navicat Premium 16工具进行连接的

     

     

     十二、修改数据库的默认编码 和执行引擎

    1、先登录查看,数据库的字符编码,命令 :show variables like '%char%';

     2、修改配置文件 /ect/my.cnf,将如下配置添加到配置文件

    [mysqld]
    lower_case_table_names = 1 # 配置表明不区分大小写 1不区分,0区分
    character-set-server = utf8 # 设置默认编码为utf8
    init_connect = 'SET NAMES utf8'
    max_connections = 1024 # 最大连接数
    default-storage-engine = INNODB
    collation-server = utf8_general_ci
    
    [client]
    default-character-set=utf8 # 设置默认编码为utf8

     参考学习链接

    https://www.bilibili.com/video/BV1di4y1s77q?spm_id_from=333.788.top_right_bar_window_history.content.click

    http://t.zoukankan.com/mihoutao-p-13254367.html

    出现错误解决方案:

    https://www.cnblogs.com/vzhangxk/p/15567447.html

    ################################大功告成##########################################

  • 相关阅读:
    NSCalendar
    保护连接字符串
    System.Runtime.InteropServices.COMException: 拒绝访问.
    Windows 7 初体验
    Sql语句收藏
    因为WMI配置,无法执行Sql Server 系统配置检查器的解决办法
    url带中文参数显示乱码的问题
    想建立一个好的团队,有意者加我
    庆祝一下,早上的帖子上了24小时排行第三
    C/S结构和b/s结构的比较
  • 原文地址:https://www.cnblogs.com/sportsky/p/15973733.html
Copyright © 2020-2023  润新知