mysql 安装后修改默认密码
mysql5.7 安装好之后,会生成一个随机密码,随机密码在mysql的错误日志里,
或者通过这个命令查看
grep 'temporary password' /var/log/mysqld.log
##会显示如下
A temporary password is generated for root@localhost: wcjSqexWh6&T
其中wcjSqexWh6&T就是默认密码,可以用这个密码登录后进行修改
登录后修改的命令是:
#5.7之后只能通过这种方式修改,以前的update和set方式不可用了
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
修改完成之后重启mysql,就可以用新密码登陆了。
修改编码遇到的坑
建好database后,开始建表,inser几个数据试试手,在插入数据时,发现无法插入中文,原因是数据库的默认编码不是utf-8,不支持中文,可以用如下命令查看编码:
mysql>show variables like 'char%';
#我的数据库默认是latin1的编码格式
为了能支持中文,所以需要修改数据库表的编码,为了以后方便我把database的编码也改了
修改方式:
#修改数据库编码
alter database <数据库名> character set utf8;
#修改表编码
alter table <表名> character set utf8;
#还需要修改相应字段的编码
alter table <表名> change <字段名> <字段名> <类型> character set utf8;
#例子
mysql>alter table student change name name varchar(140) character set utf8;
提示:最好在建表的时候指定编码
坑->
网上有文章说要修改/etc/my.cnf文件,一劳永逸的解决问题
在 [mysqld] 标签下加上
default-character-set = utf8
character-set-server = utf8
两个标签,我本来也是这样改的,但是改完之后发现怎么也启动不起来,查了查错误日志,
发现5.7不支持已经不支持default-character-set = utf8这个属性:
[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
删了之后,重新启动,完美解决(网上的文章都是一大抄,坑真不少)。
提示:查找错误日志的时候,为了快速定位到问题可以用[ERROR]过滤