Linux环境下安装部署MySQL8.0以上(内置保姆级教程) C语言

server/2024/9/25 0:11:41/

一、环境搭建、

        1 、安装MySQL服务端与客户端

        sudo apt-get install mysql-server //mysql服务端安装 。     (现在只安装这一个就够了,包含了客户端的)

        sudo apt-get install  mysql-client //mysql客户端安装。     

        mysql服务器端程序:负责管理数据库和响应客户端请求。

        mysql客户端程序:负责连接服务器,发送增删改查的请求。

        注意:在ubuntu18.04上安装mysql的过程中,没有提示输⼊密码的环节 (winodws上安装有这个环节)。

        2、安装MYSQL 的开发包

        libmysqlclient-dev是为C和C++程序提供操作mysql的api,我们⽤C编写的程序通过使⽤该库中提供的接⼝函数实现对mysql服务端的操作。⽐如pymysql库就是 为python语⾔提供操作mysql的驱动库。

        安装命令如下:      sudo apt-get install libmysqlclient-dev
        (如果按照上述运⾏C程序时 仍然提示⽆法找打mysql.h 可以尝试按照 libmysqld-dev)

        3、确认是否安装成功                

sudo netstat -tap | grep mysql

MySQL服务器程序的进程也被称为MySQL数据库实例,我们启动的MySQL服务器 进程的默认名称是 mysqld ⽽常⽤的MySQL客户端进程默认名称为 mysql

⼆、登录MYSQL

        安装完mysql后,就可以登录了,启动客户端程序并采⽤root登录命令如下:

sudo mysql -u root -p

        输⼊管理员密码进⾏登录,如下图所示:

        注意:ubuntu下如果使⽤sudo mysql -u root -p 可以绕过mysql密码直接登录

        

客户端与服务器连接的过程本质上进程间通信的过程,MySQl主要通过TCP/IP实现客户端与服务
器之间的通信, MySQL服务器默认的监听3306端⼝。

        1、修改mysql的root账户密码的密码:

                1)执⾏ sudo cat /etc/mysql/debian.cnf 查看系统安装时默认⽣成的账户如下图所示:

                2)使⽤上述账户登录mysql
                      

                3)设置mysql数库库中名为mysql的实例,并修改root账户对应的密码,更新后刷新退出

1 .use mysql
 2. update mysql.user set authentication_string=password('123456')where user='root';   //修改密码123456是密码     
 3. update user set  plugin="mysql_native_password";  //防⽌免密码直接登录
 4. flush privileges; //更改账户信息后,需要 刷新MySQL的系统权限相关表,否则会出现拒绝访问
5. quit;
                         如果修改密码时报如下错误:
                                
解决:在sql客户端内执⾏如下语句,密码要设置>=8位。

 

                最后重启mysql服务即可

                                sudo service mysql restart
               

 


http://www.ppmy.cn/server/121568.html

相关文章

Centos Stream 9+PHP8+TP8+Workerman4.1+Nginx代理SSL

由于项目需要,新到的服务器需要配置安装标题的环境,搞了两天踩了一个大坑,自己粗心了,没办法。记录一下,希望可以给您一些帮助。 一、环境需求: centos stream9、php8以上、nginx1.24、tp8、workerman4.1、由于是内网跑的,所以用上mkcert创建证书,用nginx代理websock…

去耦合的一些建议

尽量少用全局变量,以减少状态共享和潜在的副作用。 模块化设计:将代码分成小模块,每个模块独立实现特定功能,减少模块之间的相互依赖。 封装:将数据和操作封装在类中,控制对内部状态的访问,避…

Unity开发绘画板——02.创建项目

1.创建Unity工程 我们创建一个名为 DrawingBoard 的工程,然后先把必要的工程目录都创建一下: 主要包含了一下几个文件夹: Scripts :存放我们的代码文件 Scenes :工程默认会创建的,存放场景文件 Shaders &…

【Linux】从内核认识信号

一、阻塞信号 1 .信号的一些其他相关概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注…

【Qt】信号和槽

目录 QT 分析QObject QGuiApplication、QCoreApplication、QApplication 信号和槽概述 信号的本质 槽的本质 信号与槽的使用 连接信号和槽 查看内置信号和槽 自定义信号和槽 语法使用 带参数的信号槽 信号与槽的连接方式 一对一 一对多 多对一 信号槽连接的线程…

[SDX35+WCN6856]SDX35 + WCN6856 WiFi可以up起来之后无法扫描到SSID

SDX35 SDX35介绍 SDX35设备是一种多模调制解调器芯片,支持 4G/5G sub-6 技术。它是一个4nm芯片专为实现卓越的性能和能效而设计。它包括一个 1.9 GHz Cortex-A7 应用处理器。 SDX35主要特性 ■ 3GPP Rel. 17 with 5G Reduced Capability (RedCap) support. Backward compati…

golang Unicode api接口

函数名参数返回值解释Inr rune, ranges …*RangeTableboolrune是否属于其中一个范围的成员。IsrangeTab * RangeTable,r runebool报告符文是否在指定的范围表中。IsControlr runeboolIsControl rune是否为控制字符。C (其他)Unicode 类别包含…

[数据结构]动态顺序表的实现与应用

文章目录 一、引言二、动态顺序表的基本概念三、动态顺序表的实现1、结构体定义2、初始化3、销毁4、扩容5、缩容5、打印6、增删查改 四、分析动态顺序表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 想象一下,你有一个箱子(静态顺序…