环境:
Ubuntu 1804 64位
待安装:MySQL5.7版本
一、安装
1、下载mysql-apt的配置包,并安装
1
2
|
wget https:
/
/
dev.mysql.com
/
get
/
mysql
-
apt
-
config_0.
8.1
-
1_all
.deb
sudo dpkg
-
i mysql
-
apt
-
config_0.
8.1
-
1_all
.deb
|
或者下载社区版本mysql5.7
https://www.cnblogs.com/metianzing/p/9050204.html
在安装的过程中,会要求选择mysql版本,选择mysql5.7版本后,点击“OK”。
2、更新apt-get索引
1
|
sudo apt
-
get update
|
3、安装数据库,在安装过程中,会自动卸载已经安装的老版本数据
1
|
sudo apt
-
get install mysql
-
server
|
4、重启mysql,并检测安装及配置
1
2
|
sudo service mysql restart
mysql
-
u root
-
p
|
默认密码是sa
那么你的mysql在哪里
6、命令
#进入MySQL: mysql -u root -p
#启动: sudo service mysql start
#重启:sudo service mysql restart
#关闭: sudo service mysql stop
二、配置
之前我遇到了character_set_server/character_set_database非utf-8的情况。导致数据写入出错。
修改MySQL配置文件(/et/mysql/my.cnf)如下:
1
2
3
4
5
6
7
8
|
[client]
default_character_set
=
utf8
[mysql]
default_character_set
=
utf8
[mysqld]
character_set_server
=
utf8
|
禁用mysql密码
plugin-load=validate_password.sovalidate-password=OFF
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!' (修改密码)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES(开启远程访问)
刷新
FLUSH PRIVILEGES
(貌似针对红帽系列的)
Ubuntu 这是第一种方法
(1)打开/etc/mysql/debian.cnf文件,在这个文件中有系统默认给我们分配的用户名和密码,通过这个密码就可以直接对mysql进行操作了。
(2)当进入mysql之后修改mysql的密码:这个方法比较好,具体的操作如下用命令:set password for 'root'@'localhost' = password('yourpass');当修改之后就可应正常对mysql进行操作了。
第二种方法
1 安全模式登入MySQL
1 $ sudo /etc/init.d/mysql stop 2 3 [sudo] hee 的密码: 4 [ ok ] Stopping mysql (via systemctl): mysql.service. 5 6 $ sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
输入第一行终止MySQL运行,成功,会提示下面两行;
输入第四行,成功,没有任何报错则可以另外打开一个终端窗口进行下一步操作;
但是一般会报错,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
因此我们尝试输入以下代码
1 $ sudo mkdir -p /var/run/mysqld 2 3 $ sudo chown mysql:mysql /var/run/mysqld
最后再次输入:
1 sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &
到了这里不在提示错误,可以打开另一个终端端口了,尝试无密码登入MySQL。
1 mysql -u root
到这里应该可以进入MySQL了,继续操作
1 > use mysql; 2 3 > update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码 4 > update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行 5 6 > flush privileges; #更新所有操作权限 7 > quit;
2 使用修改的密码登入MySQL
经过上面一系列的操作,应该可以正常使用你更改的密码登入了。
1 > sudo /etc/init.d/mysql stop 2 > sudo /etc/init.d/mysql start # reset mysql 3 4 > mysql -u root -p
第一行先终止数据库运行,第二行重启数据库服务,第三行root用户登入。
OK 修改成功!
3 首先,修改mysql配置文:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 1
在skip-external-locking的下一行添加skip-grant-tables,跳过密码校验
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
skip-grant-tables
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
然后重启mysql后,我们直接无密码登陆:
sudo service mysql restart
mysql
- 1
- 2
登录后,我们来修改密码
mysql>use mysql;
mysql>update user set authentication_string=password('新密码') where user='root';
- 1
- 2
注意:可能遇到这样的问题,这个是你的密码强度不够,请修改强度,举例:@ROOT_root_123
到这里还没彻底弄好,千万不要退出,这里只是修改而已,还没保存
继续输入以下命令:
mysql> flush privileges;
mysql> quit;
- 1
- 2
好了,大功告成,把配置文件修改回去,注释掉skip-grant-tables,然后重启,
sudo service mysql restart
- 1
最后输入你的新密码登录。
3