赞
踩
MySQL Cluster
mysql-proxy
sharding-proxy
mysql集群插件 管理工具
有代理节点的存在 没有代码侵入
连接的数据源是 代理节点 通过代理节点自动分配
行为模式,互为主从,读写分离
要搭建mysql集群,首先要知道mysql数据的同步原理:
温馨提示:理论虽有点枯燥,但是对于案例搭建很有帮助。
复制类型
查看当前服务器的mysql版本:mysql --version
查看防火墙运行状态:systemctl status firewalld.service
systemctl stop firewalld //关闭防火墙
systemctl disable firewalld //将防火墙设置开机不自启
#关闭selinux服务
vi /etc/selinux/config //进入到此目录下将selinux的状态设置为disabled 修改为 selinux=disabled
chrony
)在两台服务器上安装chrony
软件包。您可以使用以下命令在服务器上安装:
- sudo yum install chrony
-
在其中一台服务器上编辑chrony
配置文件。您可以使用以下命令打开配置文件:
sudo nano /etc/chrony.conf
在配置文件中找到server
行,并添加另一台服务器的IP地址或主机名。例如,如果第二台服务器的IP地址是192.168.1.2
,则添加以下行:
- server 192.168.1.2
-
保存并关闭配置文件。
在两台服务器上启动chrony
服务。您可以使用以下命令启动服务:
- sudo systemctl start chronyd
-
确保chrony
服务在服务器启动时自动启动。您可以使用以下命令启用自动启动:
- sudo systemctl enable chronyd
-
等待一段时间,chrony
将自动同步服务器的时间。
请注意,您需要在两台服务器上执行以上步骤,以便它们相互同步时间。
① 在my.cnf文件中修改下面内容
vim /etc/my.cnf
server_id=11
log_bin=master-bin
log-slave-updates=true
②重启mysql服务
systemctl restart mysqld
③ 登录mysql,为从服务器授权
- mysql 5 授权
-
- mysql> grant replication slave on *.* to 'root'@'8.130.114.30' identified by 'Root,13579';
- Query OK, 0 rows affected (0.00 sec)
- mysql 8 授权
-
- 为从服务器 数据库创建账号
- mysql> create user 'repl'@'47.97.167.208' identified with mysql_native_password by 'Root,135';
- Query OK, 0 rows affected (0.04 sec)
- 赋予权限
- mysql> grant replication slave on *.* to 'repl'@'47.97.167.208';
- Query OK, 0 rows affected (0.01 sec)
- 刷新授权
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
- 查看是否赋予权限
- mysql> show grants for 'repl'@'47.97.167.208';
- +----------------------------------------------------------+
- | Grants for repl@47.97.167.208 |
- +----------------------------------------------------------+
- | GRANT REPLICATION SLAVE ON *.* TO `repl`@`47.97.167.208` |
- +----------------------------------------------------------+
- 1 row in set (0.00 sec)
刷新权限
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
查看主服务器状态
- mysql> SHOW MASTER STATUS;
- +------------------+----------+--------------+------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
- +------------------+----------+--------------+------------------+
- | mysql-bin.000007 | 569 | | |
- +------------------+----------+--------------+------------------+
- 1 row in set (0.00 sec)
vim /etc/my.cnf
server_id=22
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
② 重启mysql服务
systemctl restart mysqld
③登录mysql,配置同步
- mysql> CHANGE MASTER TO MASTER_HOST='47.97.167.208',MASTER_PORT=3306,MASTER_USER='root',MASTER_PASSWORD='Root,13579',MASTER_LOG_FILE='mysql-bin.000011',MASTER_LOG_POS=570;
- Query OK, 0 rows affected, 9 warnings (0.00 sec)
//停止IO线程
- STOP REPLICA IO_THREAD FOR CHANNEL '';
- 或
- STOP SLAVE IO_THREAD;
④ 启动同步
- mysql> start slave;
- Query OK, 0 rows affected, 1 warning (0.01 sec)
⑤ 查看slave状态
以下俩属性为yes 则配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- mysql> show slave status \\G;
- *************************** 1. row ***************************
- Slave_IO_State: Waiting for source to send event
- Master_Host: 47.97.167.208
- Master_User: root
- Master_Port: 3306
- Connect_Retry: 60
- Master_Log_File: mysql-bin.000011
- Read_Master_Log_Pos: 570
- Relay_Log_File: relay-log-bin.000002
- Relay_Log_Pos: 307
- Relay_Master_Log_File: mysql-bin.000011
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Replicate_Do_DB:
- Replicate_Ignore_DB:
- Replicate_Do_Table:
- Replicate_Ignore_Table:
- Replicate_Wild_Do_Table:
- Replicate_Wild_Ignore_Table:
- Last_Errno: 0
- Last_Error:
- Skip_Counter: 0
- Exec_Master_Log_Pos: 570
- Relay_Log_Space: 515
- Until_Condition: None
- Until_Log_File:
- Until_Log_Pos: 0
- Master_SSL_Allowed: No
- Master_SSL_CA_File:
- Master_SSL_CA_Path:
- Master_SSL_Cert:
- Master_SSL_Cipher:
- Master_SSL_Key:
- Seconds_Behind_Master: 0
- Master_SSL_Verify_Server_Cert: No
- Last_IO_Errno: 0
- Last_IO_Error:
- Last_SQL_Errno: 0
- Last_SQL_Error:
- Replicate_Ignore_Server_Ids:
- Master_Server_Id: 11
- Master_UUID:
- Master_Info_File: mysql.slave_master_info
- SQL_Delay: 0
- SQL_Remaining_Delay: NULL
- Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
- Master_Retry_Count: 86400
- Master_Bind:
- Last_IO_Error_Timestamp:
- Last_SQL_Error_Timestamp:
- Master_SSL_Crl:
- Master_SSL_Crlpath:
- Retrieved_Gtid_Set:
- Executed_Gtid_Set:
- Auto_Position: 0
- Replicate_Rewrite_DB:
- Channel_Name:
- Master_TLS_Version:
- Master_public_key_path:
- Get_master_public_key: 0
- Network_Namespace:
- 1 row in set, 1 warning (0.00 sec)
-
- ERROR:
- No query specified
①在主、从服务器上登录mysql
mysql -u root -p
②在主服务器上新建数据库名称为 “对面的女孩看过来”
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | 5645f6ds |
- | mysql |
- | performance_schema |
- +--------------------+
- 4 rows in set (0.00 sec)
- mysql> create database 对面的女孩看过来;
- Query OK, 1 row affected (0.01 sec)
③在两台从服务器上查看数据库
执行新建数据库,对面的美女看过来命令,显示如下图:
- 主服务器查询
- mysql> show databases;
- +--------------------------+
- | Database |
- +--------------------------+
- | information_schema |
- | 5645f6ds |
- | 对面的女孩看过来 |
- | mysql |
- | performance_schema |
- +--------------------------+
- 5 rows in set (0.00 sec)
- 从服务器查询
-
- 创建数据前 数据库情况
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- +--------------------+
- 4 rows in set (0.00 sec)
-
- 创建数据后 数据库情况
- mysql> show databases;
- +--------------------------+
- | Database |
- +--------------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | sys |
- | 对面的女孩看过来 |
- +--------------------------+
- 5 rows in set (0.00 sec)
查看当前的MySQL服务器ID
- mysql> SHOW VARIABLES LIKE 'server_id';
- +---------------+-------+
- | Variable_name | Value |
- +---------------+-------+
- | server_id | 1 |
- +---------------+-------+
- 1 row in set (0.00 sec)
错误问题
- 问题一
- mysql> start slave;
-
- ERROR 1872 (HY000): Replica failed to initialize applier metadata structure from the repository
-
- 问题二
- Got fatal error 1236 from source when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方案:
停止从服务器的复制进程:
- STOP SLAVE;
-
清除从服务器的复制进程状态:
- RESET SLAVE;
-
重新初始化从服务器的复制进程:
- CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='复制用户', MASTER_PASSWORD='复制用户密码';
-
请确保将上述命令中的主服务器IP地址
替换为实际的主服务器的IP地址,并将复制用户
和复制用户密码
替换为实际用于复制的用户和密码。
启动从服务器的复制进程:
START SLAVE;
登录远程服务器 验证连通性
- mysql -h 8.130.114.30 -u repl -p
- mysql -h 47.97.167.208 -u root -p
- mysqladmin -u repl -p flush-hosts
查看本地有没有安装mariadb ,有的话删除
[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# rpm -e --nodeps 软件名
查看本地有没有安装Mysql
[root@localhost ~]# rpm -qa |grep mysql
[root@localhost ~]# rpm -e --nodeps 软件名
查找本地有没有Mysql文件
[root@localhost ~]# find / -name mysql
[root@localhost ~]# whereis mysql
[root@localhost ~]# rm -rf #删除
在linux上下载 wget <https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
>
解压 tar -zxvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
更改解压后的名为"mysql" 并移动该文件到/usr/local下
mv mysql-5.6.51-linux-glibc2.12-x86_64 mysql5.6
mv mysql-5.6.45-linux-glibc2.12-x86_64 /usr/local/mysq
4.配置mysql
- useradd -s /sbin/nologin mysql # 创建mysql用户
- mkdir -p /data/mysql # 创建mysql数据库文件
- chown -R mysql:mysql /data/mysql # 修改权限
- cd /usr/local/mysql
-
- ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql # 初始化配置
- (初始化配置报错:[root@db-master01 mysql5.6]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
- FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
- Data::Dumper)
- (解决方案:需要安装 Perl 模块 Data::Dumper
- 1. 检查系统中是否已经安装了 Perl。您可以执行命令来检查:
- perl -v
- 2. 如果 Perl 没有安装,请通过包管理器安装 Perl。例如,在使用 yum 包管理器的 CentOS 上,您可以执行以下命令安装 Perl:
- sudo yum install perl
- 3.需要先安装 cpan 命令。如果您使用的是基于 Red Hat 或 CentOS 的系统,可以使用以下命令安装 perl-CPAN 包:
- sudo yum install perl-CPAN
- 4.安装 Data::Dumper 模块。您可以使用 CPAN 或者包管理器来安装 Data::Dumper 模块。使用 CPAN 安装的步骤如下:
- 执行以下命令进入 CPAN Shell:
- sudo cpan
- 在 CPAN Shell 中执行以下命令来安装 Data::Dumper 模块:
- sudo install Data::Dumper
- 5. 安装完成后,退出 CPAN Shell:
- quit
- 再次尝试运行 ./scripts/mysql_install_db 脚本。)
-
- cp support-files/my-default.cnf /etc/my.cnf # 复制配置文件
- vim /etc/my.cnf # 修改配置文件,如下
- [mysqld]
- port=3306
- user=mysql
- basedir=/usr/local/mysql
- datadir=/data/mysql
- socket=/tmp/mysql.sock
- log-error=/data/mysql/mysql.err
- pid-file=/data/mysql/mysql.pid
- #character config
- character_set_server=utf8mb4
- symbolic-links=0
- explicit_defaults_for_timestamp=true
- cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本
- chmod 755 /etc/init.d/mysqld # 修改权限
- vim /etc/init.d/mysqld # 修改启动脚本,如下图
- basedir=
- datadir=/data/mysql
5. 配置开机启动,并启动mysql
- chkconfig --add mysqld
- chkconfig mysqld on
- service mysqld start
6. 配置环境变量
- vim /etc/profile
- export PATH=$PATH:/usr/local/mysql/bin # 在文件末尾添加
- source /etc/profile # 生效
7、登录mysql,设置root密码
- # 登入mysql
- /usr/local/mysql/bin/mysql -u root
-
- # 设置mysql可以远程访问
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
-
- # 修改root用户密码为1234
- set password for 'root'@'%'=password('root123');
-
- # 刷新访问权限
- flush privileges;
进入官网下载对应的版本
MySQL :: Download MySQL Community Server
直接复制此链接即可
mysql5.6.51下载地址
MySQL :: Download MySQL Community Server (Archived Versions)
查看操作系统是ARM还是X86,下载对应架构。
[root@k8s-master02 log]# uname -m
x86_64
查看本地有没有安装mariadb ,有的话删除
[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# rpm -e --nodeps 软件名
查看本地有没有安装Mysql
[root@localhost ~]# rpm -qa |grep mysql
[root@localhost ~]# rpm -e --nodeps 软件名
查找本地有没有Mysql文件
[root@localhost ~]# find / -name mysql
[root@localhost ~]# whereis mysql
[root@localhost ~]# rm -rf #删除
确保环境准备无误
[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# find / -name mysql
[root@localhost ~]# rpm -qa |grep mysql
环境准备没问题开始上传Mysql安装包安装(rz/xftp)
[root@localhost ~]# ls
mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar
创建一个mysql目录存放解压出来的安装包
[root@localhost ~]# mkdir mysql
[root@localhost ~]# tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar -C mysql
[root@localhost ~]# cd mysql
[root@localhost mysql]# ls
mysql-community-client-8.0.33-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
mysql-community-common-8.0.33-1.el7.x86_64.rpm
mysql-community-debuginfo-8.0.33-1.el7.x86_64.rpm
mysql-community-devel-8.0.33-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.33-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm
mysql-community-libs-8.0.33-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm
mysql-community-server-8.0.33-1.el7.x86_64.rpm
mysql-community-server-debug-8.0.33-1.el7.x86_64.rpm
mysql-community-test-8.0.33-1.el7.x86_64.rpm
开始安装依赖按照顺序安装否则报错
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm
yum install openssl-devel
rpm -ivh mysql-community-devel-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm
yum -y install mysql-community*
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.33-1.el7.x86_64.rpm
开始进行下一步
mysqld --initialize --console #初始化数据库
chown -R mysql:mysql /var/lib/mysql/ #给mysql目录属主属组改成mysql
systemctl start mysqld #启动mysql
systemctl status mysqld #查看mysql状态(active running)
cat /var/log/mysqld.log |grep password #查看mysql密码
输入mysql密码
[root@localhost ~]# mysql -u root -p
Enter password:
进入数据库以后要修改密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123123';
Query OK, 0 rows affected (0.00 sec)
至此安装完成
设置远程连接
select host,user from user;
https://img-blog.csdnimg.cn/0620665e2870422abf9509c05d8273d2.png
说明用户只能本地登录
mysql> update user set user.host='%'where user.user='root';
Query OK, 1 row affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
或者新增一条权限用户 分布执行:
mysql> create user 'root'@'%' identified by 'password'; Query OK, 0 rows affected (0.03 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
然后用我们的远程工具测试即可
第一步、检查并删除已有的mysql,如果是新购买的阿里云,可以跳过。
提醒:这是很重要的工作。
1)下载MySQL的仓库 可以在MySQL的官方网站去下载,我们安装的是MySQL8.0.21版本
<https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm>
也可以使用国内的镜像网站
<https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el8-x86_64/>
下面进行安装
rpm -i <https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm>
查看有两个mysql的仓库说明rpm仓库装好了
2)然后在进行MySQL的安装
dnf install mysql-server 或 yum install mysql-server
3)启动服务
- systemctl start mysqld#启动服务
- grep password /var/log/mysql/mysqld.log#过滤密码,有无初始密码
- mysql_secure_installation#初始化工具,5.7之前的MySQL用来设置初始密码123
4)登录测试
mysql -u root -p#由刚刚上图可知,没有初始密码1
show databases;#查看当前数据库,测试是否能够运行1
5. 修改root的host向所有IP开放 `
1.GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
2. flush privileges;`
- mysql8 需要分布执行:`password`要替换成你需要使用的密码
-
- `mysql> create user 'root'@'%' identified by 'password';
- Query OK, 0 rows affected (0.03 sec)`
-
- `mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- Query OK, 0 rows affected (0.01 sec)`
-
- `mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)`
-
- 3.重启
-
- 注意!!! mysql8,要求密码的复杂性,密码太简单会包下列错误
systemctl stop mysqld
systemctl start mysqld
- 问题详情 输入正确的密码 依旧报错
-
- [root@iZbp12w6fxb1yh3v6yygdqZ mysql]# mysql -u root -p
- Enter password:
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
出现 using password的原因如下:
不输入密码:
错误的密码:
解决方案:
vim /etc/my.cnf文件;
在[mysqld]后添加skip-grant-tables(登录时跳过权限检查)
重启MySQL服务:systemctl restart mysqld
修改密码,重新登录
- mysql> SELECT user, host FROM mysql.user;
- +------------------+-----------+
- | user | host |
- +------------------+-----------+
- | mysql.infoschema | localhost |
- | mysql.session | localhost |
- | mysql.sys | localhost |
- | root | localhost |
- +------------------+-----------+
- 4 rows in set (0.00 sec)
-
- mysql> set password for 'root'@'localhost'='Root,13579';
- Query OK, 0 rows affected (0.01 sec)
-
- mysql> quit
- Bye
- [root@iZbp12w6fxb1yh3v6yygdqZ mysql]# mysql -u root -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \\g.
- Your MySQL connection id is 8
- Server version: 8.0.33 MySQL Community Server - GPL
-
- Copyright (c) 2000, 2023, Oracle and/or its affiliates.
-
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
-
- Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.
-
- mysql>
下面是每个MySQL配置的解释:
[mysqld] - 这是MySQL配置文件中的节名,表示将下面的配置应用于MySQL服务器进程。
datadir - 指定MySQL数据库文件的存储位置。
socket - 指定MySQL服务器与客户端之间进行通信时使用的套接字文件。
max_allowed_packet - 指定允许的最大数据包大小。如果插入或更新的数据包超过该大小,MySQL将拒绝此操作。
open_files_limit - 指定MySQL服务器可以同时打开的文件数的限制。这包括表、索引和日志文件等。
lower_case_table_names - 设置表名、数据库名和列名的大小写规则。如果设置为1,则将它们转换为小写。
thread_concurrency - 设置MySQL服务器上并发线程的最大数量。
thread_cache_size - 设置用于缓存线程的内存大小。这可以提高数据库的性能。
skip-name-resolve - 禁止MySQL服务器将主机名解析为IP地址。可以提高连接速度。
sort_buffer_size - 设置用于排序操作的缓冲区大小。
join_buffer_size - 设置用于连接操作的缓冲区大小。
tmp_table_size - 设置临时表的最大大小。
max_heap_table_size - 设置用于存储在内存中的最大堆表大小。
max_connections - 设置MySQL服务器的最大并发连接数。
wait_timeout - 设置连接在没有活动操作时的超时时间。
interactive_timeout - 设置为客户端连接在没有任何请求的情况下仍然被视为活动连接的超时时间。
back_log - 设置待处理连接请求的队列大小。
read_buffer_size - 设置读取数据时使用的缓冲区大小。
read_rnd_buffer_size - 设置执行随机读取操作时使用的缓冲区大小。
bulk_insert_buffer_size - 设置用于批量插入的缓冲区大小。
innodb_thread_concurrency - 设置InnoDB存储引擎的并发线程数。
innodb_buffer_pool_instances - 设置InnoDB缓冲池的实例数。
innodb_buffer_pool_size - 设置InnoDB缓冲池的大小。
innodb_log_buffer_size - 设置用于InnoDB事务日志缓冲区的大小。
innodb_log_file_size - 设置InnoDB事务日志文件的大小。
innodb_log_files_in_group - 设置InnoDB事务日志文件的数量。
server-id - 设置MySQL服务器的唯一标识。
skip_slave_start - 设置MySQL服务器不启动从属复制。
log-bin - 启用二进制日志记录,并设置二进制日志文件的名称。
log-bin-index - 指定二进制日志索引文件的名称。
log-slave-updates - 设置从属服务器是否将更新写入自己的二进制日志。
group_concat_max_len - 设置GROUP_CONCAT函数返回的字符串的最大长度。
relay-log - 设置从属服务器的中继日志文件的名称。
relay-log-index - 指定从属服务器的中继日志索引文件的名称。
auto_increment_increment - 设置自动增量列的步长,适用于多主复制设置。
auto_increment_offset - 设置自动增量列的起始值,适用于多主复制设置。
symbolic-links - 设置是否允许MySQL服务器创建符号链接。
sql_mode - 设置MySQL服务器的SQL模式,用于限制和规范SQL语句的语法和行为。
[mysqld_safe] - 这是MySQL配置文件中的另一个节名,用于配置MySQL安全模式下的错误日志和进程ID文件的位置。
在本地的Navicat连接服务器上的数据库时,可能会出现如下错误,表示没有连接成功
解决方法:
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里写自己数据库的密码' WITH GRANT OPTION;
- 1
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.x.x' IDENTIFIED BY '这里写自己数据库的密码' WITH GRANT OPTION;
- 1
- FLUSH PRIVILEGES;
- 1
- use mysql;
-
- select host from user where user='root';
- 123
- update user set host = '%' where user ='root';
- 1
localhost 指的是用户开放的IP,可以是localhost(仅本机访问,相当于127.0.0.1),可以是具体的某一IP,也可以是 ‘%’ (所有IP均可访问)
- select host, user from user;
- 1
- FLUSH PRIVILEGES;
- 1
- 解决:任务管理器-->服务-->MySQL-->右键开始-->重新连接测试
- 1
iptables -vnL|grep 3306
回车,查看防火墙是否设置了3306端口/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
再次输入 iptables -vnL|grep 3306
回车即可看到3306端口状态信息:
再使用navicat连接mysql就没有问题了。
查阅参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。