MySQL学习笔记

一、Windows11安装MySQL

1、下载地址:MySQL :: Download MySQL Community Server

        下载zip压缩版,不要用exe版。

        解压后放入系统program files目录

2、安装方法

        参考:https://blog.csdn.net/weixin_56050344/article/details/136070721

        cmd 以管理员身份运行

        cd c:\program files/mysql-3.8.0/bin

        mysqld --initialize –console  ##初始化密码

        mysqld --install mysql ##安装mysql服务

        net start mysql ##启动mysql

        mysql -uroot -p   ##以root用户登录

二、ubuntu安装mySQL

1、安装mysql

        sudo apt-get update

        sudo apt-get install mysql-server

        sudo mysql_secure_installation  ##设置root密码,移除匿名用户,禁止root远程访问等

        sudo service mysql start

                mysql -u root -p

2、root密码忘记时的处理办法

  1)编辑/etc/mysql/my.cnf

        加入

        [mysqld]

        skip-grant-tables  ##表示忽略权限登录入mysql

  2)sudo systemctl restart mysql  ###重启mysql服务

  3)mysql -u root -p ###进入时不用输入口令,也不能进行权限命令如alter user

         update mysql.user set authentication_string = '' where user='root';

         ##修改plugin为原始口令

        update mysql.user set plugin='mysql_native_password' where user='root';

        select host,user,plugin,authentication_string from mysql.user;

        flush privileges;

  4)编辑/etc/mysql/my.cnf 将忽略权限行注释掉

        [mysqld]

        #skip-grant-tables

  5)sudo systemctl restart mysql  ###重启mysql服务

  6)mysql -u root -p ##口令为空

        ##修改口令

        alter user 'root'@'localhost' identified with mysql_native_password by 'XXXXXX'; 

        flush privileges;

  7)mysql -u root -p

三、mySQL远程联接

        使用vscode和dbvisual远程数据库均无法连接mysql,发现3306端口不对外开放。做下列处理。

1、查看远程连接端口号

        netstat -an | grep mysql

2、打开防火墙端口允许

        Sudo ufw allow 3306

        Sudo ufw status

3、打开地址绑定开关

        编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,

        注释掉bind-address这一行,将其改为:

        #bind-address            = 127.0.0.1

        bind-address            = 0.0.0.0

        这样MySQL就会监听所有接口,而不仅是本地连接。

4、重启mysql

        sudo systemctl restart mysql

5、开放远程用户登录权限

        CREATE USER 'root'@'%' identified by 'XXXXXX';

        grant all privileges on *.* to 'root'@'%';

        flush privileges;

你可能感兴趣的:(mysql,学习,笔记)