Linux平台mysql安装和配置

Linux平台mysql安装

本文编写时候的测试平台:腾讯云轻量应用服务器
操作系统:ubuntu18.4

一,安装

sudo ap-get update
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

1.以上3个软件包安装完成后,使用如下命令查询是否安装成功:

sudo netstat -tap | grep mysql

2.查询结果如下图所示,表示安装成功。

root@xyz:~# netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      3368/mysqld  

二,本地登录

1.获取初始密码

redhat系统 密码从/root/.mysql_secret文件中获取
Ubuntu系统 密码/etc/mysql/debian.cnf

2.登录

先切换root用户,mysql -uroot -pWokkHz6D93X4QCh9

登陆成功后, 修改密码:
mysql> set password=password(‘root’);

注意: 若无法正常登陆, 可以用root用户杀死mysql服务, 重新启动.

三,解决中文乱码和不区分大小写问题

在Ubuntu 下配置 MySQL 的字符编码。安装完 MySQL 后,系统默认的字符编码是 latin1 ,输入的是中文,可是输出却是一堆乱码。现在要做的就是把 MySQL的默认字符编码设置为支持中文的编码,如 GBK、GB23112、等

1.用vim打开/etc/mysql/mysql.conf.d/mysqld.cnf文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf  

打开文件后,在[mysqld] 的skip-external-locking下,添加

character-set-server=utf8

lower_case_table_names=1

......  
[mysqld]  
......  
skip-external-locking  
character-set-server=utf8
lower_case_table_names=1
......  

下面,我们还要去设置客户端的默认编码,我们现在进入mysql客户端配置文件目录

用vim打开/etc/mysql/conf.d/mysql.cnf,并在[mysql]下插入一行:default-character-set=utf8

[mysql]  
default-character-set=utf8 

最后,重启mysql 服务

service mysql restart

进入mysql,用\s查看是否修改成功

mysql>\s  
	......  
	Server     characterset: utf8  
	Db         characterset: utf8  
	Client     characterset: utf8  
	Conn.      characterset: utf8  
	......  

四,远程登录

使用window平台下的Navicat Premium工具来远程登录

Navicat Premium软件版本:navicat112_premium_cs_x64.exe

在这里插入图片描述

创建连接点击连接测试,这个时候会发现连接不成功,原因是腾讯云服务器上的防火墙规则没有添加mysql的这个端口,如下图:
在这里插入图片描述

现在还是不能连接成功原因是mysql的配置还没有更改。

如下:

  1. 编辑mysql配置文件,把其中bind-address = 127.0.0.1注释了

    vi /etc/mysql/mysql.conf.d/mysqld.cnf
    

在这里插入图片描述

2.使用root进入mysql命令行,执行如下2个命令,示例中mysql的root账号和密 码:root

grant all on *.* to root@'%' identified by 'root' with grant option;
flush privileges;
  1. 重启mysql
/etc/init.d/mysql restart

这个时候再来远程连接mysql
在这里插入图片描述

五,导入mysql脚本创建表格

有两种方式一种是使用远程可视化工具Navicat Premium工具,第二种是直接把脚本导入到云服务器上用命令行执行。

Navicat Premium工具的操作方法:

1.连接上mysql然后创建数据库

在这里插入图片描述

2.打开数据库,然后鼠标右键选择,运行SQL文件

在这里插入图片描述

3.点击开始,如果没有执行错误,则建表成功。

4.断开连接,重新连接则可以看到你新建的表格。

在这里插入图片描述

云服务器上的命令行操作:

1.使用root用户登录mysql。

2.创建数据库。

mysql>create database cloud_disk

3.切换到刚刚创建的数据库。

mysql>use cloud_disk

4.导入文件

mysql>source /home/ubuntu/test/script/mysql/cloud_disk.sql;
ysql>create database cloud_disk

3.切换到刚刚创建的数据库。

mysql>use cloud_disk

4.导入文件

mysql>source /home/ubuntu/test/script/mysql/cloud_disk.sql;

问题点解决

1.解决普通Linux用户无法本地登入的问题

使用root用户登入到mysql

mysql> select Host,User from user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| %         | debian-sys-maint |
| %         | mysql.session    |
| %         | mysql.sys        |
| %         | root             |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)  

把| localhost | root |删除然后退出重启一下就ok了

sudo /etc/init.d/mysql restart

2.解决root用户被删除的问题

mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

先添加不检测权限

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]后添加skip-grant-tables(登录时跳过权限检查)
然后重启
sudo /etc/init.d/mysql restart
然后直接登入
sudo mysql -uroot
mysql> use mysql
mysql> select * from user;
发现缺少了root用户
然后直接插入

INSERT INTO `mysql`.`user`(`Host`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `Event_priv`, `Trigger_priv`, `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`, `password_expired`, `password_last_changed`, `password_lifetime`, `account_locked`) VALUES ('%', 'root', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9', 'N', '2022-01-16 07:26:04', NULL, 'N');


INSERT INTO `mysql`.`user`(`Host`, `User`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `Event_priv`, `Trigger_priv`, `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`, `password_expired`, `password_last_changed`, `password_lifetime`, `account_locked`) VALUES ('localhost', 'root', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9', 'N', '2022-01-16 07:26:04', NULL, 'N');

插入完成之后初始密码为“123456”

注释掉skip-grant-tables
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
重启生效
sudo /etc/init.d/mysql restart
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值