posted in Mysql 

先说这个问题产生的影响,这个跟解题有关,有必要说明,我的user表没有任何一个用户,包括root,所以一开始我要给权限,方便后续操作:

vim /etc/my.cnf
skip-grant-tables     #在[mysqld]下面添加这一行,忽略权限表

然后重启mysql:

/etc/init.d/mysqld restart

先说解决步骤:
1.创建root用户
2.给予root所有权限
过程:
1.创建root用户:

create user 'root'@'localhost' identified by '123457';

localhost表示本地,mysql登入的时候,不用指定ip登入

此步骤可能会报以下错误,没报错的跳过(直接到权限那一步),用一下方法解决:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

输入:

flush privileges;

此时再次重新创建用户:

create user 'root'@'localhost' identified by '123457';

如果再次报错,这步没报错的也是直接跳到赋予权限那一步,报错的以下操作:

drop user 'root'@'localhost';

再次重新创建用户:

create user 'root'@'localhost' identified by '123457';

结果没有再报错,root用户创建成功。 下面赋予root权限:

#赋予所有库所有表操作权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
 
flush privileges;
 
exit

到这一步没有报错,表明已经成功了,不过要把最开始的配置文件恢复:

#删除配置文件中的
vim /etc/my.cnf
skip-grant-tables

退出,重启mysql:

/etc/init.d/mysqld restart

最后,测试:

mysql -uroot -p123457   #可以登入的话,表示前面的操作没问题
posted in Mysql 

1.修改root用户

mysql> use mysql;
mysql> select User,Host,plugin from user;

查看root用户权限,是否是mysql_native_password,如果不是,则将auth_sock改为mysql_native_password

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

或者习性下面语句,这样就不需要执行第二步的内容了

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

2.修改或者设置root用户密码

首先用debian-sys-maint登录,密码在/etc/mysql/debian.cnf文件

mysql> mysql -u debian-sys-maint -p

然后修改root密码(密码可与之前的一样):

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

然后,quit;退出。

经过这两步之后便可以使用 mysql -u root -p登录 Mysql, 不需要带上sudo.

参考

Ubuntu 18.04 Mysql每次访问需要加sudo的问题

posted in Mysql 

解决方法:

sudo vim /etc/mysql/my.cnf

添加:

[mysqld]
skip-grant-tables

保存,退出。 然后执行以下两条命令来重启mysql服务:

service mysqld stop
service mysqld start

或者直接执行重启服务的命令:

service mysqld restart

重启完以后,上面对配置的修改才正式生效,这时候再登录就不用加sudo了。

原文链接:https://blog.csdn.net/BigData_Mining/article/details/107318193

posted in Mysql 

创建数据库并设置字符集

CREATE DATABASE `carlife` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

posted in Mysql 

1、介绍

1.1、什么是索引?

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。

1.2、为什么要有索引呢?

索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。 索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。 索引相当于字典的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页去查。

Read on →