(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{ae8A:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return c})),n.d(t,"default",(function(){return b}));var a=n("wx14"),r=n("zLVn"),o=(n("q1tI"),n("7ljp")),l=n("hhGP"),c=(n("qKvR"),{});void 0!==c&&c&&c===Object(c)&&Object.isExtensible(c)&&!c.hasOwnProperty("__filemeta")&&Object.defineProperty(c,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"}});var s={_frontmatter:c},i=l.a;function b(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(i,Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"install-new-database-drivers-in-docker-image"},"Install New Database Drivers in Docker Image"),Object(o.b)("p",null,"Superset requires a Python database driver to be installed for each additional type of database you\nwant to connect to. When setting up Superset locally via ",Object(o.b)("inlineCode",{parentName:"p"},"docker-compose"),", the drivers and packages\ncontained in\n",Object(o.b)("a",{href:"https://github.com/apache/incubator-superset/blob/master/requirements.txt",parentName:"p"},"requirements.txt")," and\n",Object(o.b)("a",{href:"https://github.com/apache/incubator-superset/blob/master/requirements-dev.txt",parentName:"p"},"requirements-dev.txt"),"\nwill be installed automatically."),Object(o.b)("p",null,"In this section, we'll walk through how to install the MySQL connector library. The connector\nlibrary installation process is the same for all additional libraries and we'll end this section\nwith the recommended connector library for each database."),Object(o.b)("h3",{id:"1-determine-the-driver-you-need"},"1. Determine the driver you need"),Object(o.b)("p",null,"To figure out how to install the ",Object(o.b)("a",{href:"/docs/databases/installing-database-drivers",parentName:"p"},"database driver")," of your choice."),Object(o.b)("p",null,"In the example, we'll walk through the process of installing a MySQL driver in Superset."),Object(o.b)("h3",{id:"2-install-mysql-driver"},"2. Install MySQL Driver"),Object(o.b)("p",null,"As we are currently running inside of a Docker container via ",Object(o.b)("inlineCode",{parentName:"p"},"docker compose"),", we cannot simply run\n",Object(o.b)("inlineCode",{parentName:"p"},"pip install mysqlclient")," on our local shell and expect the drivers to be installed within the\nDocker containers for superset."),Object(o.b)("p",null,"In order to address this, the Superset ",Object(o.b)("inlineCode",{parentName:"p"},"docker compose")," setup comes with a mechanism for you to\ninstall packages locally, which will be ignored by Git for the purposes of local development. Please\nfollow these steps:"),Object(o.b)("p",null,"Create ",Object(o.b)("inlineCode",{parentName:"p"},"requirements-local.txt")),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},"# From the repo root...\ntouch ./docker/requirements-local.txt\n")),Object(o.b)("p",null,"Add the driver selected in step above:"),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},'echo "mysqlclient" >> ./docker/requirements-local.txt\n')),Object(o.b)("p",null,"Rebuild your local image with the new driver baked in:"),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},"docker-compose build --force-rm\n")),Object(o.b)("p",null,"After the rebuild is complete, which make take a few minutes, relaunch:"),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},"docker-compose up\n")),Object(o.b)("h3",{id:"3-connect-to-mysql"},"3. Connect to MySQL"),Object(o.b)("p",null,"Now that you've got a MySQL driver installed locally, you should be able to test it out."),Object(o.b)("p",null,"We can now create a Datasource in Superset that can be used to connect to a MySQL instance. Assuming\nyour MySQL instance is running locally and can be accessed via localhost, use the following\nconnection string in “SQL Alchemy URI”, by going to Sources > Databases > + icon (to add a new\ndatasource) in Superset."),Object(o.b)("p",null,"For Docker running in Linux:"),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},"mysql://mysqluser:mysqluserpassword@localhost/example?charset=utf8\n")),Object(o.b)("p",null,"For Docker running in OSX:"),Object(o.b)("pre",null,Object(o.b)("code",{parentName:"pre"},"mysql://mysqluser:mysqluserpassword@docker.for.mac.host.internal/example?charset=utf8\n")),Object(o.b)("p",null,"Then click “Test Connection”, which should give you an “OK” message. If not, please look at your\nterminal for error messages, and reach out for help."),Object(o.b)("p",null,"You can repeat this process for every database you want superset to be able to connect to."))}void 0!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-docker-add-drivers-mdx-0d36232d60091a3b126f.js.map