021-mysql的安装及root密码设置

一、mysql通过apt默认安装

1、 服务端<默认版本5.7.2>和客户端的安装
更新服务器上的软件包索引
sudo apt update
 
安装mysql默认软件包5.7.2服务端
sudo apt install mysql-server

安装客户端
sudo apt install mysql-client 

安装完成后,什么动静都没有,也没注册用户,也没设置密码,进行下面操作。

2、设置root用户和密码
试着登陆客户端会报错:
mysql
ERROR 1045 (28000): Access denied for user 'leonchen'@'localhost' (using password: NO)

mysql -uroot -p
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
root用户设置密码方法一:
# 1)查看配置文件中的用户名和密码
cat /etc/mysql/debian.cnf
# 内容大致如下,可以看到默认的用户名和密码。
----------------------------------------------
[client]
host     = localhost
user     = debian-sys-maint
password = xxxxx
socket   = /var/run/mysqld/mysqld.sock
-----------------------------------------------

# 2)使用默认的用户和密码登陆客户端->设置root用户密码
mysql -udebian-sys-maint -pxxxxx
use mysql;

# 这个命令可以检查每个MySQL用户帐户使用的身份验证方法
SELECT user,authentication_string,plugin,host FROM mysql.user;
##
这时的可以看到root 对应的 authentication_string 应该是空的,
现在root用户实际上使用的是 auth_socket 插件(plugin)进行了身份验证,
要将根帐户配置为使用密码进行身份验证,请运行以下ALTER USER命令,确保更改password为您选择的密码。
##

# 设置root账户配置为使用密码进行身份验证,并且设置密码;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
或者
update user set plugin="mysql_native_password",authentication_string=password('密码') where user="root";

# 运行FLUSH PRIVILEGES告诉服务器重新加载授权表并使新的更改生效
FLUSH PRIVILEGES;

# 再看一次root帐户使用的身份验证方法
SELECT user,authentication_string,plugin,host FROM mysql.user;
# 这时的root 对应的 authentication_string 会有加密的一串数据, 
# 现在root用户实际上使用的是 mysql_native_password 插件(plugin)进行了身份验证。

# 3)设置完密码后,退出登录并重启mysql服务,使用新密码登录
    # 退出登录
    exit   
    # 重启mysql服务
    systemctl restart mysql  或者 sudo service restart 
    # 登录mysql
    mysql -u root -p
    Enter password:密码
root用户设置密码方法二:
参考(4)警告二的过程也是可以解决的。
3、MySQL配置⽂件 <了解>
配置⽂件⽬录为/etc/mysql/mysql.cnf 进⼊conf.d⽬录,
打开 mysql.cnf 
发现并没有配置
进⼊ mysql.conf.d ⽬录
打开 mysql.cnf 可以看到配置项
主要配置项如下 bind-address表示服务器绑定的ip
----------------------------------------------
默认为127.0.0.1 port					 表示端⼝,
默认为3306 datadir 					 表示数据库⽬录,
默认为/var/lib/mysql general_log_file   表示普通⽇志,
默认为/var/log/mysql/mysql.log log_error表示错误⽇志,
默认为/var/log/mysql/error.log
----------------------------------------------

启动服务 sudo service mysql start 
查看进程中是否存在mysql服务  ps ajx | grep mysql
停⽌服务 sudo service mysql stop 
重启服务 sudo service mysql restart
4、可能出现的报错或警告
警告一:
mysql: [Warning] Using a password on the command line inter face can be insecure 
MySQL:[警告]在命令行InterFaces上使用密码可能是不安全的。

意思:在命令行中直接输入密码账号信息是不安全的

这个是在MySQL5.6版本以后才出现的出现场景

第一种、登录mysql的时候

#mysql -uroot -p数据库密码

Using a password on the command line interface can be insecure.

解决方式:

#mysql -uroot -p 回车,提示输入密码

第二种、在mysqldump中使用

#mysqldump -uroot -p你的密码 数据库名 > 存放位置 备份文件名.sql

Using a password on the command line interface can be insecure.

解决方法修改mysql配置文件

vim /etc/my.conf

加入下面内容:

[mysqldump]
user=root
password=你的密码
警告二:
mysql: [Warning] Using a password on the command line interface can be insecure.(using password:YES)
# 解决方法:
cd /etc/mysqld.conf.d
sudo  vi  mysqld.cnf
# 在文件中添加
skip-grant-tables
/etc/init.d/mysql restart 或者 sudo service mysql restart
# 进入root用户的客户端
mysql -uroot -p  (因为已经进行了免密登录操作,此处不用输入密码)
# 然后进行重置密码
update mysql.user set authentication_string=password('你要重置的密码') where user='root';
或者
update mysql.user set password=password('你要重置的密码') where user='root' and host='localhost';
# 服务器重新加载授权表并使新的更改生效
flush privileges;
# 退出
exit
# 注释掉上面添加的 skip-grant-tables 这句
# 再次重启
sudo service mysql restart
# 此时应该可以正常登陆了
mysql -uroot -p

二、mysql8.0版本安装

# 默认安装方式是不能设置mysql的root密码的,以下是常见的安装方式
sudo apt-get install mysql-server

sudo apt isntall mysql-client

sudo apt install libmysqlclient-dev12345

安装之后默认mysql是5.7.x,好像只支持17.0版本一下的。

而ubuntu18.04不兼容mysql设置root密码,所以可能会遇到下面问题

# 那么可以用上面的方法解决这个版本问题
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’

mysql8.0版本的安装过程如下

1、检测是否安装过mysql 和查询所有Mysql对应的文件夹
# 检测是否安装过mysql
rpm -qa | grep mysql
# 删除命令
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
# 查询所有Mysql对应的文件夹(删除)
whereis mysql
rm -rf /usr/lib64/mysql /usr/share/mysql
find / -name mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql

# 或者
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common  

# 清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
2、下载安装

mysql8.0.x的下载地址,选no thanks,just start my download

sudo dpkg -i mysql-apt-config_0.8.6-1_all.deb
tab 选 ok
sudo apt-get update
sudo apt-get install mysql-server 
# 过程中输入密码,其他设置默认即可 这里有一步需要选择加密的方式,注意选择5.x版本
service mysql start
service mysql stop 

# 确认是否启动成功
sudo netstat -tap | grep mysql 

# 启动mysql数据库
sudo /etc/init.d/mysql start 或 sudo service mysql restart
#重启
sudo /etc/init.d/mysql restart 或 sudo service mysql restart
# 关闭
sudo /etc/init.d/mysql stop	或 sudo service mysql restart

猜你喜欢

转载自blog.csdn.net/mmmmmCJP/article/details/113116344