一、有关登录,设置密码
1. 初始状态下,管理员 root,密码为空,默认值只允许从本机登录localhost
mysql -u root -p 用这个就可以登录,但是省略了他的IP和端口号
mysql -u root -p -h默认本机ip -P默认3306
2.设置密码
mysqladmin -uroot password 123 设置初始密码为空,因此-p可以不用 如下:
再次登录的时候就需要密码了
3.修改密码
修改的时候需要退出以后再进行
mysqladmin -u root -p123 password 456 修改密码,因为之前有密码,所以必须输入原密码才能设置新密码
如下:
PS:修改密码的时候不要加引号
4.忘记密码
linux平台下破解密码的两种方式
方式一:删除授权库mysql,重新初始化
# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!!
# systemctl restart mariadb
# mysql
方式二:删除授权库mysql,重新初始化
# vim /etc/my.cnf #mysql主配置文件
[mysqld]
skip-grant-table
# systemctl restart mariadb
# mysql
MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> q
#打开/etc/my.cnf去掉skip-grant-table,然后重启
# systemctl restart mariadb
# mysql -u root -p123 #以新密码登录
windows下,5.7版本mysql,破解密码的两种方式:
方式一:
1.首先关闭mysql
2. mysqld --skip-grant-tables 跳过授权表启动mysqld
3.再打开另一个终端(cmd)输入mysql就可以进入。然后去修改他的密码
update mysql.user set authentication_string=password('') where user='root' and host='localhost';
4. flush privileges;
5.taskill mysqld 或 taskill -f /PID 7832/或quit 让他退出
6.重新启动mysql
方式二:
1.关闭mysql,可以用tskill mysqld将其杀死
2.在解压目录下,新建mysql配置文件my.ini
3.my.ini内容,指定
[mysqld] skip -grant-tables
4.启动mysqld
5.在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root' and host='localhost';
flush privileges;
6.注释my.ini 中的skip-grant-tables,然后启动mysqld,然后就可以以新密码登录了
二 、有关配置文件和字符编码
1.在windows下,为mysql服务指定配置文件
ps:配置文件中的注释可以有中文,但是配置项中不能出现中文

#在mysql的解压目录下,新建my.ini,然后配置 #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效 [mysqld] ;skip-grant-tables port=3306 character_set_server=utf8 default-storage-engine=innodb innodb_file_per_table=1 #解压的目录 basedir=E:mysql-5.7.19-winx64 #data目录 datadir=E:my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据 #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效 [client] port=3306 default-character-set=utf8 user=root password=123 #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置 [mysql] ;port=3306 ;default-character-set=utf8 user=egon password=4573 #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
2.统一字符编码

#1. 修改配置文件 [mysqld] default-character-set=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 #mysql5.5以上:修改方式有所改动 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 #2. 重启服务 #3. 查看修改结果: s show variables like '%char%'