mysql中grant all privileges on怎么赋给用户远程权限

mysql grant all privileges on赋给用户远程权限

mysql中grant all privileges on赋给用户远程权限

  • 改表法。

当你的帐号不允许从远程登陆,只能在localhost连接时。这个时候只要在mysql服务器上,更改 mysql 数据库里的 user 表里的 host 项,从localhost"
改成%即可实现用户远程登录

Linux多线程编程实例代码分

在安装mysql的机器上运行:

1. mysql -u root -p

2. select host,user from user where user='
root'
;

3. update user set host = '
%'
where user='
root'
and host='
localhost'
;

4. select host, user from user where user='
root'
;

  • 授权法

[root@aaa-server ~]# mysql -u root -p
MariaDB [(none)]>
grant all privileges on *.* to root@'
%'
identified by '
123'
with grant option;

Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
flush privileges;

Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]>
flush privileges;

Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
exit
Bye
  • 授权法。

例如,你想user使用mypwd从任何主机连接到mysql服务器的话。

在安装mysql的机器上运行:

1. GRANT ALL PRIVILEGES ON *.* TO '
user'
@'
%'
IDENTIFIED BY '
mypwd'
WITH
GRANT OPTION;

2.FLUSH PRIVILEGES;

模板:
grant all privileges on 库名.表名 to '
用户名'
@'
IP地址'
identified by '
密码'
with grant option;

flush privileges;
  • 如果你想允许用户user从ip为192.168.1.4的主机连接到mysql服务器,并使用mypwd作为密码

在安装mysql的机器上运行:

GRANT ALL PRIVILEGES ON *.* TO '
user'
@'
192.168.1.3'
IDENTIFIED BY '
mypwd'
WITH GRANT OPTION;

FLUSH PRIVILEGES;

注意授权后必须FLUSH PRIVILEGES;
否则无法立即生效。

高版本数据库不能按照grant all privileges on *.* to "
root"
@"
%"
identified by "
xxxx"
;
去修改用户权限

mysql>
SELECT @@VERSION;

+-----------+
| @@VERSION |
+-----------+
| 8.0.14 |
+-----------+
1 row in set (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)

再次查看发现有了root %

mysql>
select User,Host from user;

+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
———————————————— mysql授权语句说明grant all privileges、创建用户、删除用户

mysql的赋权语句:

grant all privileges on *.* to '
root'
@'
%'
identified by '
123456'
with grant option;
  • all privileges ==》 表示所有的权限 ,增删改查权限全部都有了

  • *.* ==>
    所有的数据库下面所有的表

  • root@% ==》 所有数据库下面所有的表,所有的权限,全部都给root用户 % 表示root用户可以在任意机器上面进行连接登录

  • The password used for remote login connection is "123456".

刷新权限列表:flush privileges

CREATE DATABASE 数据库名;

CREATE USER '
用户名'
@'
%'
IDENTIFIED BY '
密码'
;

GRANT all privileges ON 数据库名.* to '
用户名'
@'
%'
identified by '
密码'
WITH GRANT OPTION;

flush privileges;

创建用户:CREATE USER '
jack'
@'
localhost'
IDENTIFIED BY '
test123'
;

查看数据库中已经创建的用户:select user,host from user;
--user表在数据库自带的、名字为mysql的数据库中

删除用户:delete from user where user = '
jack'
;

drop user ‘jack'
@'
%'
;

drop user 会将该用户的信息全部删掉,而 delete 只会清除user表,其他的比如db表中的信息还是存在。

清除缓存:FLUSH PRIVILEGES



多线程编程在计算机领域中非常常见,因为可以让程序更加高效地使用CPU资源,同时也可以实现一些异步操作。在Linux系统中,多线程编程非常灵活,可以用多种不同的方法实现。这篇文章将分析一些常见的Linux多线程编程实例代码,并讨论它们的特点和优缺点。
一、基于pthread库的多线程编程
pthread是一种常用的Linux下的多线程编程库,它提供了线程的创建、同步、销毁等多种操作。下面的代码演示了如何使用pthread库创建一个简单的多线程程序:
```c
#include
#include
void* print_message(void* arg)
{
char* message = (char*)arg;
printf(\"%s\
\", message);
}
int main()
{
pthread_t thread_id;
char* message = \"Hello, world!\";

pthread_create(&thread_id, NULL, print_message, (void*)message);
pthread_join(thread_id, NULL);
return 0;
}
```
这段代码中,我们首先用pthread_create()函数创建了一个新的线程,然后用pthread_join()函数等待该线程结束。在新的线程中,我们打印了一个Hello, world!的消息。这个程序非常简单,但它展示了基于pthread库实现的多线程编程的基本模式。
二、使用OpenMP实现多线程编程
OpenMP是一种非常流行的多线程编程框架,它允许开发者使用一种简单的方式实现并行化。下面的代码演示了如何使用OpenMP编写一个简单的并行程序:
```c
#include
#include
int main()
{
#pragma omp parallel
{
printf(\"Hello, world! I'm thread %d.\
\", omp_get_thread_num());
}
return 0;
}
```
在这个程序中,我们首先使用#pragma omp parallel指令启用了并行化,在这个并行块中,每个线程都打印了类似于\"Hello, world! I'm thread 2.\"的消息。在编写使用OpenMP的程序时,需要注意正确设置线程数和避免竞态条件等问题。
三、使用C++11线程库实现多线程编程
C++11标准提供了一个新的线程库,使得多线程编程变得更加简单和高效。下面的代码演示了如何使用C++11线程库编写一个简单的多线程程序:
```c++
#include
#include
void print_message(std::string message)
{
std::cout << message << std::endl;
}
int main()
{
std::thread t(print_message, \"Hello, world!\");
t.join();
return 0;
}
```
在这个程序中,我们使用std::thread类创建了一个新的线程,并将一个函数和它的参数传递给它。在这个函数中,我们打印了一个Hello, world!的消息。这个程序非常简单,但它展示了使用C++11线程库实现的多线程编程的基本模式。
综上所述,Linux下的多线程编程非常灵活,并且有多种实现方法可供选择。在编写多线程程序时,我们需要根据实际情况选择合适的方法,并注意多线程带来的竞态条件等问题。